4InTouchHMI软件的应用



  IF DL_START.Name=="NULL" THEN
  DL_STOP=0;
  Record=StringRight( DL_STOP.Name ,StringLen( DL_STOP.Name )-7 );
  SQLSelect( ConnectionId, "COMM", "COMMENT", "device_id="+"’"+Record + "’" , "" );
  SQLFirst( ConnectionId );
  Record=StringTrim( COM, 3 );
  Record=StringLeft( Record, StringLen( Record )/2 );
  SQLEnd( ConnectionId );
  www.it168.com
  SQLInsert( ConnectionId, "CortrolLog", "CortrolLog" );
  ELSE
  DL_START=1;
  Recor d=StringRight( DL_START.Name ,StringLen( DL_START.Name )-7 );
  SQLSelect( ConnectionId, "COMM", "COMMENT", "device_id="+"’"+Record + "’" , "" );
  SQLFirst( ConnectionId );
  Record=StringTrim( COM, 3 );
  Record=StringLeft( Record, StringLen( Record )/2 );
  SQLEnd( ConnectionId );
  SQLInsert( ConnectionId, "CortrolLog", "CortrolLog" );
  ENDIF;
  ENDIF;
  2.4数据库的应用
  系统中的IBM 服务器作为数据存储和发布的服务器,安装了SQL SERVER 2000,系统的报警历史记录和操作记录以及设备档案都存放在名为“DL” 的数据库中。
  2.4.1 ODBC的连接
  INTOUCH 通过ODBC 访问SQL SERVER,在ODBC 中建立名为“DL”的用户DSN,在INTOUCH 中用语句:
  SQLConnect( ConnectionId, "DSN=DL");
  建立连接,若连接成功则ConnectionId > 0 。在执行每一条SQL 语句时都会有一个返回值,若返回值为0 则表示执行成功,否则表示与数据库连接不正常,需重新建立连接。为了时刻检测与数据库服务器的连接情况,在应用程序脚本中每5 秒钟执行一条查询语句:
  IF ResultCode = = 0 THEN
  ResultCode = SQLSelect(ConnectionId , "SYSUSERS" ,"SYSUSERS","UID=0", "" );
  ENDIF;
  同时在条件脚本中判断ResultCode (即返回值)若ResultCode <> 0 则断开连接:
  SQLDisconnect( ConnectionId );
  ConnectionId = 0;
  SHOW “通讯状态”;
  打开“通讯状态”画面,显示信息“与服务器连接失败!”及“重试”、“取消”两个按钮。按“重试”,置位系统将每20 秒进行一次尝试连接:
  IF RETRY = = 1 THEN
  ResultCode = SQLConnect( ConnectionId, "DSN=DL");
  ENDIF;
  直到ResultCode = 0 为止。
  尝试连接时系统将变得很忙。若想取消连接,则按“取消”按钮,系统将不再与服务器连接,对现场 的监控可以正常进行,但操作与报警记录都将不写入服务器(数据发布不受影响)。希望重新连接服务器时,只需在“通讯状态”画面下按“重试”按钮即可。
  2.4.2 绑定列表
  在全点INTOUCH 中需建立四个绑定列表:“alarmhis”,“cortrolog”,“device”,“sysusers”分别对应数据库中的表格。“sysusers”只是为了检查ODBC 连接用的,并无其他用处。在每个列表中用变量与各字段相对应,如“cortrolog” 中变量“DATETIME” 对应字段“DATETIME” ;变量“$OPERATER”对应字段“USERNAME” ;变量“RECORD”对应字段“RECORD”等。在写记录前,只需先对变量复值,再执行语句:
  SQLInsert( ConnectionId, "CortrolLog", "CortrolLog" );
  即可。
  查询记录时,首先准备一个查询条件,例如在“稀矾池液位”的动作脚本中有以下语句
  DEVICE_ID= LT51027.Name;
  ShowAt("设备档案",$ObjHor +200, $ObjVer +50);
  SQLSelect( ConnectionId , "DevICE" , "DevICE" , "Device_ID=" + "’"+ device_id +"’" , "" );
  SQLFirst( ConnectionId );
  首先将要查询的设备名(LT51027)赋给DEVICE_ID。
  “SQLSelect”语句实际上执行了一条SQL 语句:
  SELECT * FROM DEVICE WHERE DEVICE_ID = ‘LT51027’
  后将查询到的记录的字段值赋给绑定列表中的变量。这样在设备档案中里,只要放上绑定 列表中的变量就能显示查询的结果了。下图为从数据库中查到的设备’ LT51027’的信息。
  3 管理层应用程序
  有了数据库中的“操作记录”、“报警记录”和“设备档案”,可以方便的开发管理层应用程序。下图是用Delphi 开发的一个客户端软件,用来查询记录及维护设备档案,它可以运行在工程师的PC 上。
  另外,利用Intouch 的NETDDE 功能,可将生产数据实时地通过第三方软件进行发布,这里涉及更多的软件编程技术,就不在深入了。下图为将数据以WEB 的方式进行发布。
  结束语
  以上的数据库及WEB 功能也可以通过IndustrialSQL Sever 和SuiteVoyager 实现,以上的应用可以说明InTouch 无论在脚本和第三方软件的接口方面都是非常灵活的。在过去,组态软件往往只针对下位机,一个控制系统通常与外界隔离,成为信息孤岛,使用Intouch 可以做到车间层与管理层的紧密结合,管理者可以在办公室里浏览到生产一线的数据,使企业以更高的效率进行生产和管理。

COPYRIGHT(C) 2011 厦门永宏亚得机电科技有限公司版权所有(闽ICP备05025945号) ALL RIGHTS RESERVED?

电话: 0592-5190891 传真: 0592-5190720 E-Mail: E-mail:yade8895@163.com
地址: 厦门市海沧区兴港六里17号2607室 邮编:361009 联系人:翟先生