基于CSCAN总线压力监控系统的研究与实现

2022-12-02 03:48:40黄智渊杨兴星
仪器仪表用户 2022年12期
关键词:压力仪表偏移量模拟量

黄智渊,杨兴星

(中国人民解放军92574部队,上海 200436)

工业现场中需要对大量压力仪表的数据进行监控和数据共享,传统RS485 模式下压力仪表可实现数据的中心的集采,但是操作现场的不同位置很难实时共享以获取不同点位的压力数据(压力变送器、压力开关),应用CsCAN总线将多台OCS 控制器实现压力模拟量和数字量的互联互通,可有效提升压力仪表的监控效率和可靠性[1,2]。

1 CsCAN总线

1.1 CAN总线

CAN 是Controller Area Network 的缩写,是由Bosch 博世公司研发。CAN 总线具有布线简单,典型的总线型结构,可最大限度地节约布线与维护成本,稳定可靠,实时、抗干扰能力强,传输距离远等特点。此后,CAN 通过ISO11898 及ISO11519 进行了标准化。由于CAN 总线本身只定义ISO/OSI 模型中的第一层(物理层)和第二层(数据链路层),在实际使用中,用户还需要自己定义应用层的协议,因而在CAN 总线的发展过程中出现了各种版本的CAN 应用层协议,现阶段最流行的CAN 应用层协议主要有CANopen、DeviceNet 和J1939 等协议。HORNER 的CsCAN 协议也是基于CAN2.0A 标准发展出来的一种应用层协议。OSI 参考模型包括:①物理层和;②数据链路层(ISO11898,ISO11519);③网络层;④传输层;⑤会话层;⑥表示层和⑦应用层(CSCAN、CANOPEN、DEVICENET和SAEJ1939)[3]。

图1 CsCAN网络的总线拓扑结构图Fig.1 Bus topology of CsCAN network

图2 CsCAN网络的波特率和通信距离的关系图Fig.2 Relationship between baud rate and communication distance of CsCAN network

1.2 CsCAN总线

CsCAN 协议是HORNER 公司在CAN 2.0A 基础上开发的一种高速通信协议,主要用于实现HORNER 产品之间的数据交互。其主要特性如下:

1)通信网络介质:CAN 总线电缆(四芯屏蔽双绞镀锡铜线,121Ω 特征阻抗)。

2)通信速率:目前支持50Kbps,125Kbps(默认),250Kbps,500Kbps,1Mbps。

3)通信距离:使用标准粗缆(18AWG)情况下,不加中继器通信距离500m;网络最多允许使用3 个中继器,使网络拓展到2000m。

4)接点数量:在不使用中继器的情况下,单个网段最多有64 个节点设备;每增加1 个中继器,网络可增加64 个节点;最多允许使用3 个中继器,但总节点数不超过253 个。

5)网络终端电阻:网络两端需要安装终端电阻,121 Ω,1%精度,功率不小于1/4 W。CAN 总线上的所有节点没有主从之分,大家都处于平等的地位。反应在数据传输上,即是:在总线空闲状态,任意节点都可以向总线上发送消息。CsCAN 总线可以实现点对点通信和数据的广播交互,因此CsCAN 网络上的任意控制器/模块均可以接收到其他控制器/模块的数据,也可以把自身的数据广播到网络中去[4,5]。

CsCAN 总线通信中,关于供电和屏蔽线缆的连接方式,请注意:网络两端需要安装终端电阻。每段不相连的屏蔽电缆的屏蔽层只能单端接地;几段屏蔽电缆的屏蔽层可以连接在一起,但是也只能单端接地。如果网络中存在IO 模块,一般通过总线供电,V+、V-需要连接电源。如果只是控制器间的通信,CAN 端子的V+可以不连接起来,但V-需要连接。

2 压力数据配置

2.1 OCS设置

OCS 控制器外围具有RS485、RS232、AI 和DI 功能,通过Modbus RTU/ASCII 协议或自定义协议采集485 输出的压力仪表数据,通过AI 4mA~20mA 电流采集压力变送器的输出,通过DI 采集压力开关仪表的工作状态。CAN 总线接口采用RJ45 网口形式,8 针分别对应:1-CAN 数据高、2-CAN 数据低、3-公共端、4-NC、5-NC、6-屏蔽连接、7-公共端0V 和8-NC。OCS 控制器内置120Ω 总线终端电阻,应用%SR152.4 控制是否启用CAN 总线的终端电阻。以控制器间的CsCAN 总线通信举例,连接两台用于压力监控的OCS 控制器,实现功能如下:

1)控制器A 发送1 个16 位的整数到控制器B。

2)控制器B 发送1 个16 位的整数到控制器A。

3)控制器A 发送16 个数字量到控制器B。

4)控制器B 发送16 个数字量到控制器A。

5)控制器A 需要知道当前网络的通信状态,B 是否能和它通信正常。

因为CsCAN 网络上的每个设备需要有不重复的ID,所以这里把控制器A 的ID 设置为1,B 的ID 设置为2。此项操纵可以在控制器屏幕上的系统菜单中完成,也可以在Cscape 编程软件中的Controller -> Set Local Network ID 实现。设置完成后,编程软件右下方连接到的控制器的Local ID 地址就会变为所设定的地址。OCS 控制器将压力数据进行本地和服务器同步存储,本地采用SD 卡进行数据记录(CSV 格式),服务器侧通过串口或网口将数据实时传输。所获取的压力数据都带有时间戳标识,可以进行曲线绘制和阈值逻辑判断。

图3 CsCAN模拟量OCS发送配置图Fig.3 Configuration diagram of CsCAN analog quantity OCS transmission

2.2 压力数据共享

2.2.1 压力模拟量发送

压力数据通过CsCAN 协议在OCS 控制器之间实现数据共享,以控制器A 和B 的收发为例。控制器A 发送1 个16 位的整数(压力值)到控制器B,发送数据包所使用的CsCAN ID 号,可以使用常数或者寄存器,范围1~253。Format 中选择全局数据模式Global Data,Data 中因为要发送模拟量值,选Analog,CsCAN 中每个ID 号下可以最多发送32 个模拟量值。这个WORD Offset 指的是该功能块发送的数据的偏移量是多少,如果是0,便是这32 个值中的第1 个数,相应的接收块的偏移量也应为0。如果Send on Change of State 选上,里面设定为%S8,只有当从%R1 开始的要发送的数据发生变化时,控制器才向总线发送1 次数据;如果不勾选,则只要该功能块在扫描周期导通,都会向总线发送1 次数据。所以,本例中这样配置的优势在于可以控制控制器CsCAN 网络的通信量。综上所述,该功能块实现了把从%R1 开始的连续1 个字长的数据,以CsCAN 节点号1 发送到网络中,%R1 在该数据包中所处的位置为模拟量第1 个数据(偏移量0)。

图4 CsCAN模拟量OCS接收配置图Fig.4 CsCAN Analog quantity OCS receiving configuration diagram

2.2.2 压力模拟量接收

OCS 控制器A 接收1 个控制器B 发出的模拟量(压力值),Network Data 中ID 是要接收的数据包所使用的CsCAN ID 号,可以使用常数或者寄存器,范围1~253。依旧选择全局数据Global Data,因为要接收模拟量值,选Analog;因为在控制器B 中发出的数据偏移量为1,所以这里接收也配置为1。在Destination Data 的Address 中配置要接收的寄存器的起始地址,如%R2。Num Words 是从Destination Data 开始的要接收的数据字长,1~32。该功能块实现了把网络中以CsCAN 节点ID2 发送的模拟量数据,从其第2 个数据(偏移量1)开始的连续1 个字的数据接收到本机从%R2 开始的连续寄存器中。

2.2.3 压力数字量发送

OCS 控制器A 发送16 个数字量(压力开关状态量)到OCS 控制器B。发送数据包所使用的CsCAN ID 号,可以使用常数或者寄存器,范围1~253。Format 中选择全局数据模式Global Data,因为要发送开关量值,选Digital,CsCAN 中每个ID 号下可以最多发送64 个数字量值。这个WORD Offset 指的是该功能块发送的数据的偏移量是多少,如果是0,便是这64 个值中的第1 个数,相应的接收块的偏移量也应为0,数字量模式下的数据起始地址必须为%T1,%T17,%T33,%M49……这类地址,即每16 个位中的第1 位地址开始。如果把Send on Change of State 选上,里面设定为%S8,只有当从%T1 开始的要发送的数据发生变化时,控制器才向总线发送1 次数据;如果不勾选,则只要该功能块在扫描周期导通,都会向总线发送1 次数据。所以,本例中这样配置的优势在于可以控制控制器CsCAN网络的通信量。该功能块实现了把从%T1 开始的连续1 个字长的数据,以CsCAN 节点号1 发送到网络中,%T1 在该数据包中所处的位置为数字量第1 个数据(偏移量0)。

图5 CsCAN数字量OCS发送配置图Fig.5 CsCAN Digital quantity OCS transmission configuration diagram

2.2.4 压力数字量接收

OCS 控制器A 接收16 个OCS 控制器B 发出的数字量(压力开关的当前状态),要接收的数据包所使用的CsCAN ID 号可以使用常数或者寄存器,范围1~253。选择全局数据Global Data,因为要接收数字量值,选Digital,因为在控制器B 中发出的数据偏移量为1,所以这里接收也配置为1,Destination Data 是要接收的寄存器的起始地址,从Destination Data 开始的要接收的数据字长,1~4。该功能块实现了把网络中以CsCAN 节点ID2 发送的数字数据,从其第2 个数据(偏移量1)开始的连续1 个字的数据接收到本机从%T17 开始的连续寄存器中。

3 压力数据通信状态

压力仪表数据的实时监控和共享,需要知道当前的网络通信状态,以确保数据真实有效。如OCS 控制器A 需要知道当前网络的通信状态,判断OCS 控制器B 是否能和它通信正常。使用Network Get/Put Heart Beat 模块,配置Network ID 要接收的心跳包所使用的CsCAN ID 号,可以使用常数或者寄存器,范围1~253。Timeout(ms)项通信超时时间,单位ms,范围1~6553:在控制器B 的程序中,会看到一段心跳发送程序以100ms 为周期向网络发送心跳。本例中,如果A 站300ms 接收不到B 的心跳,则认为通信超时,%T101 会从ON 变为OFF,直到再次收到心跳。一般地,该超时时间应该大于心跳发送时间。控制器B 的程序和A 基本一致,只是心跳块不同。要发送的心跳包所使用的CsCAN ID 号,可以使用常数或者寄存器,范围1~253。%SR29 是系统寄存器,表示本机的CsCAN 网络ID。心跳包发送间隔时间,单位1ms,范围1~6553,配置为100 时,B 站以100ms 为间隔向网络发送心跳。Status状态寄存器用于内部使用,无意义,占用1 个字[6-8]。

4 大数据量处理

压力仪表的模拟量数据一般使用浮点数float 类型,占用两个%R 字。从上面可以看到,1 个ID 号最多只能发送32 个模拟量,64 个开关量。如果需要传递的数据比较多,可以让1 个控制器占用多个ID 号,进而发送更多的数据。要实现该功能,首先要进入Program 菜单下的Network Configuration,在弹出的窗口中的Number of Network 项,给控制器分配连续的ID 号。下例中控制器占用3 个网络ID,故填3。另外,在做此类通信时,使用时需要注意CAN 总线的网络负荷,系统寄器%SR187~%SR192 分别给出了网络和本机的实时CAN 总线负荷率,数据类型为INT,单位0.1%。比如,如果看到的数值为123,则网络占用率为12.3%。多个OCS 控制器监控压力仪表时,尽量控制平均网络负荷在85%以下,否则可能造成通信数据失。%SR187代表平均网络负荷,%SR188 代表最小网络负荷,%SR189代表最大网络荷,%SR190 代表本机使用网络造成的平均负荷,%SR191 代表本机使用网络造成的最小负荷,%SR192代表本机使用网络造成的最大负荷。

5 结论

应用CsCAN 协议将多台OCS 控制实现CAN 总线连接,并使用OCS 控制器的RS485、RS23、AI、DO 采集压力仪表的模拟量和数字量以实现工业现场中多个压力仪表数据的实时监控和数据共享。以两台OCS 控制器的数据交互为例,详细介绍了压力变送器模拟量和压力开关数字量数据发送和接收,大量数据共享及OCS 控制器通信状态的配置方法。经测试比较,基于CsCAN 总线的压力仪表监控系统具有良好的交互性能,有效地提高了现场计量效率和操作可靠性,达到了预期的设计效果。

猜你喜欢
压力仪表偏移量模拟量
基于串口通信的压力仪表PLC自动化调试方法
基于格网坐标转换法的矢量数据脱密方法研究
基于FPGA的多通道模拟量采集/输出PCI板卡的研制
测控技术(2018年12期)2018-11-25 09:37:42
搅拌针不同偏移量对6082-T6铝合金接头劳性能的影响
基于最小二乘平差的全极化SAR配准偏移量估计方法
测绘工程(2017年3期)2017-12-22 03:24:50
关于压力仪表的检定与维护探讨
压力仪表的检定与维护
化工管理(2017年13期)2017-03-03 12:18:52
关于600MW火电机组模拟量控制系统设计和研究
电子制作(2016年21期)2016-05-17 03:53:12
模拟量输入式合并单元测试仪的研制
一种通用模拟量及开关量信号采集板卡的设计