第六章 监视力控®与I/O设备的通讯状态
目前各种I/O设备提供的对外数据接口可分为以下几类:
- 数字通讯接口,包括串口类、以太网(TCP/IP协议)类、现场总线类、仪器总线类通讯接口(如GPIB等)。
- 模拟量通道输出,设备直接提供4-20mA、1-5V或继电器接点信号等。
力控®具有世界上大部分主流设备的I/O接口程序,对GPIB总线以及Honeywell、Yokogawa、Foxboro、Fisher-Rosemount等厂家的DCS也能够支持。
除通常意义上的数据采集外,力控®可以利用采集到的实时数据对装置进行实时建模,插入力控®自己的先进控制控件,实施先进控制。
6.1 对一个设备上的数据定义不同的采集周期
如果一台设备上有1000个实时数据需要采集,而在这1000个数据中只有10个是经常刷新且需要密切监视的,其余990个全部是辅助数据,但是也需要时常查看。如果把这1000个数据同等地对待,采用统一的扫描周期进行采集,就会严重影响10个重要数据的刷新速度。怎样既保证1000个数据都能够采集,又确保这10个重要数据的采 集速度呢?有两种办法:办法1:为一个设备定义两个逻辑设备,使其具有不同的采集周期,如图6-1所示。其中一个设备的扫描周期为10分钟,另一个设备的扫描周期为50ms。

图6_1
办法2:不用上面的办法,一台设备只定义一个设备名称也可以达到要求,只需在定义该设备时选择“动态优化”如图6-2。动态优化后的力控®I/O驱动对画面中不显示而且没有组态历史趋势和报警的数据是不采集的,仅当画面中显示这个数据时才进行采集。因此将不常用的数据单独组态在一个或几个画面中,使用完毕马上关闭就不会影响整个采集速度。这种方法适用于存在有大量不需要快速更新的数据的情况。

图6_2
6.2 合理设置扫描周期,避免引起设备死机
有些I/O设备内部只有一个CPU,同时负责数据通讯和计算,如果在力控®上设置的数据扫描周期太快容易使设备死机,因此在设置这一参数时应该慎重,最好通过多次试验确定一个合适的扫描周期。设备的扫描周期即为定义设备时的“更新周期”,根据不同的设备更新周期建议值如表6-1。
通信方式 |
通讯速率 |
扫描周期(仅供参考) |
串口(RS232/RS422/RS485) |
2400及以下 |
1000ms以上 |
4800 |
500-1000ms及以上 |
9600 |
200-500ms及以上 |
19200及以上 |
50-100ms及以上 |
同步 |
|
10ms-100ms及以上 |
Modem |
|
1000ms以上 |
TCP/IP网络 |
|
200ms及以上 |
网桥(GPRS、CDMA等) |
|
2000ms以上 |
6.3 通过拨号方式与I/O设备通讯
力控®的所有串口I/O驱动程序都支持通过MODEM以拨号方式与设备通讯。只要正确设置电话号码即可,如图6-3所示。

图6_3
6.4 通过以太网(TCP/IP、UDP/IP)方式与I/O设备通讯
通信方式根据设备对应选择TCP/IP或者UDP/IP的方式,设备定义时注意通讯参数“设备地址”是填写实际的IO硬件设备的地址(ID号)还是填写IO设备的硬件接口IP地址,默认均填写设备ID号(一定要参考该设备驱动帮助)。
6.5 通过网桥(GPRS、CDMA)方式与I/O设备通讯
设备定义时通信方式选择“网桥(GPRS、CDMA等)”进入“下一步”如图6-4选择厂家的GPRS模块,正确填写其他各通讯参数,具体参考GPRS通讯相关的帮助。

图6_4
6.6 通讯状态监视、设备状态数据的读取
在力控®中可以为每一个I/O设备自动定义一个变量,假如系统中有一个设备PLC1,则每当PLC1不能与力控®正常通讯时,这个变量的值就会被置为1。计算机通讯口故障、电缆、PLC端通讯口的故障、PLC通讯口与计算机通讯口的参数设置不一致都会造成通讯故障。还有一种可能,就是数据连接项错误,如果计算机的命令发给PLC的只读参数,PLC是不会予以理睬的。
如图6-5所示,当定义变量时,在“变量定义”对话框中选定“类别”为“数据库变量”,在“数据源”中指定数据源,在“参数”中选定“数据库状态”就会弹出对话框。在下拉框“类型”中选择“I/O报警”,然后在“设备”下拉框中选择对应得设备名称。当这个设备得通讯不正常时,对应的变量值就会变成“1”,你可以在程序中判断该变量的值来发出相应的声光报警,也可以用于其他目的。

图6_5
在管理、协调和负责所有设备数据通讯的Io Server中,如何观察通讯状态并判断通讯是否正常的方法,运行后打开Io Server的界面,如图6-6。

图6_6
可以分别从四个角度观察,通讯是否正常:
- 通道(Channel)下的设备通讯信号灯闪烁情况(注意鼠标不要选中该设备),如图6-7。周期性地闪烁绿色为正常,周期性地闪烁红色为故障。

图6_7
- 选中指定的IO设备,观察右上方的窗口,如图6-8。

图6_8
与通讯有关的参数:
Request times:请求次数
Answer times:返回次数
Timeout times:超时次数
当超时次数很少或为0表明通讯的参数设置基本没问题。

图6_9
- 右键Channel0,显示通讯信息,判断收发信息是否正常即可,如图6-10。

图6_10
6.7 怎样用辅助工具调试I/O设备
这里的辅助工具包括通用的串口调试工具、以太网调试工具和硬件厂家提供的测试软件等。
在力控安装盘中路径“SDK\接口开发包\Fiossdk3.1\Utility”下有一个IoTest.exe或者路径“SDK\技术资料\工具软件\串口调试工具”下的COM.exe。如图6-11所示。

图6_11
菜单“参数设置”用来设置I/O设备的通讯方式和通讯参数。如图6-12所示。主要是设置串口的DCB参数、IP地址、Modem参数及显示方式等。如图6-12。

图6_12
正确设置参数后,按“连接设备”按钮,如果成功的话,"连接设备"按钮的标题变成"断开连接",表示可以收发数据了。如果在"参数设置"中设置"周期性发送周期"不为0,则在"连接设备"后会出现"周期发送"按钮,否则出现"手动发送"按钮。使用"周期发送"或"手动发送"按钮,可以周期性或一次性地发送编辑框中的数据。
编辑框中数据的格式缺省是混合方式的,如果想发送编辑框中的数据,这也是唯一的数据类型,它的形成规则如下:任何ASCII码(除'[')可以直接输入,'['可以使用"[[]"来输入;"[]"内是由' '(空格)分隔的转意字符,它们的意义为:
'[': 用来输入'[';
'*': 在发送数据时表示延时1毫秒
'#': 在发送数据时表示延时10毫秒
'$': 在发送数据时表示延时100毫秒
'!': 在发送数据时表示延时1000毫秒
'\': 表示它后面的数据是十进制的(缺省是16进制)
' '(空格): 作为分隔符,任何未定义的字符都可以作为分隔符,最好使用空格。
0~9: 可以用来输入10进制或16进制数据。
A~F/a~f: 可以用来输入16进制数据。
例子: abcv[[ 30 *#$! ]345 对应的16进制数据串为: 61H,62H,63H,76H,5BH,30H,33H,34H,35H;而且在30H之后有1111毫秒的延时。
当用在其它情况(不是用来发送数据)时,唯一的差别是没有了延时的概念。
"其它工具":校验使用混合格式的数据,计算常用的校验码,ASCII码表显示使用16进制和10进制显示的ASCII码表,各种数据转换把混合格式、16/32位整数、32位浮点数等转换为十几种常用数据格式,除混合格式外,其它数据格式为直接用空格分隔的数据串。
<<BACK NEXT>>