组态王常见问题的解决方法
组态王虽然国内用的很多,但他的问题也很多,有时候弄起来真的很麻烦,比如一个简单的开机自动运行都要自己设置,下面是我在网上查到的一些内容。
组态王使用常见问题
1、变量设定中最大(小)值及最大(小)原始值的意义?
[最大(小)值是变量在现实中表达的工程值(如:温度、压力等)的大小,而最大(小)原始值是采集设备中[寄存器]数字量的最大(小)值(如板卡中的819-4095等)。一般对于板卡设备此值为物理量经AD转换之后的值,如12BitAD此值范围0~4096、16BitAD为0~65535,对于PLC、智能仪表、变频器,其本身已将物理值转换为工程值所以此时最大(小)值与最大(小)原始值在设置时是一致的.
2、为什么变量无法删除,如何删除变量?
[在组态王中,只有未使用的变量才能被删除,因此在删除变量之前,必须去掉在画面或命令语言、控件引用处,等处与之有关的连接,如果还是无法删除,在工程浏览器中执行工具-更新变量计数命令,重新统计变量,在变量使用报告中可以查询变量是否还在某些地方使用,将其连接断开后,利用工具-删除未用变量将变量删除。 3、工程运行时,显示通讯协议组件失败?
[设备驱动安装错误:1、安装新的驱动2、在开发状态下从新连接设备,如果还是有错误,请联系驱动部索要新的驱动程序] 4、光盘上的典型案例无法打开?
[将工程拷贝到硬盘上将属性改为存档即可 5、如何在打开机器时自动进入组态王?
[将touchview快捷方式拷贝到系统开始\\程序\\启动中 6、怎样把工程文件变小?
[可以删除*.AL2(报警信息文件),*.REC(历史记录文件),*.111文件(*.pic文件的备份文件)的文件。
7、如何在线增删用户及用户密码和权限? [使用editusers()函数(用户权限需大于900)]
8、在定义变量的基本属性时状态栏中的保存数值、保存参数是什么意思? [保存参数:在系统运行时,修改变量的域的值(可读可写型), 系统自动保存这些参数值,系统退出后,其参数值不会发生变化。当系统再启动时,变量的域的参数值为上次系统运行时最后一次的设置值。无需用户再去重新定义 。
保存数值:系统运行时,当变量的值发生变化后,系统自动保存该值。当系统退出后再次运行时,变量的初始值为上次系统运行过程中变量值最后一次变化的值。 9、开发狗与运行狗的区别?
[开发狗是用于工程开发使用的,为了方便调试支持6小时的连续运行,运行狗是用于工程实际运行,不能进行开发.
21:如何不进入系统桌面环境而直接运行组态王工程如何实现(Win2000系统)?
运行RegEdit文件:找到 我的\\HKEY_Local_MACHINE\\software\\Microsoft\\Windows NT\\currentVersion\\winlogon 将Userinit=c:\\winnt\\system32\%userinit.exe改为: Userinit= c:\\program files\\kingview\\touchvew.exe
22:如何在组态王中修改系统时间? 调用批处理文件:dsh.bat
string Adate = StrFromInt( A年, 10 ) + \月, 10 ) + \日, 10 ); string Atime = StrFromInt( A时, 10 ) + \分, 10 ) + \秒, 10 ); string Acommand =InfoAppDir()+\ Acommand = Acommand + \ Acommand = Acommand + Adate; Acommand = Acommand + \ Acommand = Acommand + Atime; StartApp(Acommand); 批处理文件:dsh.bat date %1 time %2
22:工程被破坏后如何恢复画面?
1、新建一工程,在工程浏览器中选择导入,将被破坏工程的画面导入即可
2、新建一工程,该工程下新建与原来工程*.pic文件名一样的空画面,保存画面.将被破坏工程的*.pic文件拷贝到新建工程的目录下将新建工程的*.pic文件覆盖,从新打开新建工程,将画面逐个打开可以看到工程画面。
23:如何打印信息到针式打印机?
用函数filewritestr()函数实现,filename参数为“LPT1:”
24:组态王中的报表RTL为如何格式,如何打开?
报表RTL是组态王自己的报表格式,只能通过组态王用载入报表函数(ReportLoad函数)打开。
25:为什么在命令语言中使用报表函数却不执行?
在应用程序命令语言中使用各种报表函数(如:reportsetcellvalue()等)。当画面隐含时,函数无法正常执行,如:变量值无法正确写入对应的单元格中。用户要注意这种情况,这不属于软件错误,运行过程中当画面隐含时不能对报表进行操作。
26:组态王中的打印函数PrintWindow()如何使用纸张的横向打印功能?
PrintWindow()函数的第二、三个参数不能够为0并且将打印机的纸张设置为横向即可;如:PrintWindow( \监控中心\
27:在历史趋势曲线中看不到曲线?
1、数据词典设置的记录变化与安全区中没有选择数据记录
2、变量的量程过大,实际显示的数值占量程的百分比非常小,所以感觉没有曲线显示 3、系统时间被修改,历史数据存储有误,所以曲线无法显示
28:如何根据起始日期时间、终止日期时间查询历史趋势曲线? 使用通用控件中的历史趋势曲线:
\\\\本站点\\PHTTime=AHTTime(\\\\本站点\\HTDate,\\\\本站点\\HTTime); \\\\本站点\\PHTTime1=AHTTime(\\\\本站点\\HTDate1,\\\\本站点\\HTTime1); \\\\本站点\\PHTTime2=\\\\本站点\\PHTTime1-\\\\本站点\\PHTTime;
批次历史曲线.SetTimeParam(\\\\本站点\\PHTTime,0,\\\\本站点\\PHTTime2,0);
29:如何利用通用控件中的历史趋势曲线作为实时曲线使用?
在画面属性命令语言存在时调用历史趋势曲线控件HT的方法如下: HT.HTUpdateToCurrentTime()
30:与SQL SERVER进行数据交换,实数类型存入数据库后为什么在组态王中无法读取? 原因是因为客户在数据库中定义的字段的类型不对。在组态王中定义的内存实型变量,在ACCESS数据库中对应的字段的类型应该是单精度型,在SQL SERVER数据库中对应的字段的类型应该是real型.(不能为float型).
31:为什么从EXCEL返回组态王会出错?
在EXCEL中用 AppActivate \函数时,如果EXCEL中为AppActivate \组态王运行系统\,组态王的设置运行系统中,标题条文本里填写:组态王运行系统,同时,不要选\标题条中显示工程路径\如果选择了,在AppActivate 应写\组态王运行系统-c:\\…..\否则就会出错
32:组态王的存盘数据用何方式打开?为什么组态王的历史记录文件打开都是乱码? *.REC文件存放的历史数据,不能用excel直接打开,它本身是二进制文件.可以在VBA中调用提供的动态连接库来访问。
33:SQLDelete()函数中选择条件的用法。A3=\客户=\做为条件不执行? sql查询语句如果查询的字段为字符串时应使用单引号,a3=\客户’\即可
34:数据库插入记录失败?
1、在信息窗中查看数据库是否连接
2、数据库表格的字段名与组态王记录体定义的字段名是否相同3、数据库表格的字段类型与组态王变量的类型是否符合,推荐使用组态王的表格模板创建表格4、表格中使用的字段名是否为data和time,请改为其他字段名。 35:如何将数据存为.txt文件? 使用函数FileWriteStr(Filename,FileOffset,Message,LineFeed); 例:将名为MsgTag的文字变量写入文件C:DATA\\FILE.TXT的末尾。调用函数FileWriteStr (\
36:数据库字段为\反应罐1#温度时\组态王无法通过ODBC往数据库中写数据? ODBC不支持存在’#’字符的字段,不要使用#
37:如何在数据库中始终保持一个月的数据,自动删除一个月之前的记录? 请将控制面板中的区域设置日期改为yyyy-mm-dd格式 数据库中保存一个月的历史数据,自动删除一个月以前的数据。命令语言放在应用程序命令语言启动时或者事件命令语言$时==1中:
SQLConnect( DeviceID, \历史;uid=er;pwd=0\
long month=\\\\本站点\\$月-1;
long year=\\\\本站点\\$年;
long day=\\\\本站点\\$日;
string date1;
if(month==0)
{month=12;
year=\\\\本站点\\$年-1;}
date1= StrFromInt( year, 10 );
date1=date1+\
date1 = date1 + StrFromInt( month, 10 );
date1 = date1 + \
string whereexpr=\日期={d’\
SQLDelete( DeviceID, \
if(\\\\本站点\\$月==4||\\\\本站点\\$月==6||\\\\本站点\\$月==9||\\\\本站点\\$月==11)
{ if(\\\\本站点\\$日==30) {
day=31;
date1= StrFromInt( year, 10 );
date1=date1+\
date1 = date1 + StrFromInt( month, 10 );
date1 = date1 + \
whereexpr=\日期={d’\