GRM110最多可以包含2个RS485端口,内置多种主、从通讯协议,可连接多种设备,最大可支持多达1000点的通讯变量。GRM110支持的设备包括:人机界面(HMI)、可编程控制器(PLC)、 智能模块、板卡、智能仪表、智能传感器,变频器等等。
GRM110支持的通讯协议及协议的数据类型介绍可以参考通讯协议手册(GrmDev_Driver.pdf),在GRMDEV5开发环境的“帮助”菜单中可以打开。
GRM110作为主机时,通常和PLC或者采集模块,变频器等连接,主动采集PLC的数据。
GRM110作为从机时(GRM110仅仅支持作为MODBUS从机),通常和触摸屏连接。
GRM110作为主机时,使用方法如下:
1) 使用GRMDev5开发工程,根据GRM110连接的PLC的属性配置通讯端口
2) 在通讯端口下,添加通讯设备。
3) 在数据词典中,设置IO变量属性将变量关联到相关通讯设备的PLC寄存器地址。
4) 如有需要,可以子在工程中定义和变量相关的各种事件控制,定时,交换。
5) 将工程下载到GRM110。
在工程管理器左侧,在相应的通讯端口上点击右键,选择“编辑端口”,弹出下图所示“通讯端口编辑器”窗口。选择主机通讯协议,设置端口参数。下图以MODBUS协议为例,其他协议也是类似用法!
注意:如果通讯端口下已经建立有设备,又想选择其他协议的话,请先在设备上点右键删除改端口下的设备,才能更改其他协议。
协议参数
u 读优化:对于不连续地址的数据读取,是否采取打包读。选择YES,则系统使用打包读命令,一次性完成多个地址的读取。
u 读优化间隔:读优化时,若地址之间小于此间隔,则会打包到一起,使用多读命令一次读取。
u 最大包长:一次通讯允许的最多变量的长度,单位为字。如上图所示,表示一次最多允许读取60个字的变量,即120个字节。
u 字节顺序:调整32位整数或32位浮点数的解码顺序。对于Modicon PLC及支持标准MODBUS ASCII的PLC及控制器等设备,请设置为“3412”顺序解码。
例如,用03命令读取1号MODBUS从机的32位无符号整数,
01 03 00 00 00 02 C4 0B
串口收到的数据如下:
01 03 04 00 0C 16 2E B4 4C
其中,00 0C 16 2E为读取到的4个寄存器数值。
字节顺序设置为1234:表示GRM110直接按收到的字节顺序解码。
以上数据解码0X000C162E ,即十进制整数 792110。
字节顺序设置为2143:表示双字元件高低字不颠倒,但字内高低字节颠倒。
以上数据解码0X0C002E16 即十进制整数201338390。
字节顺序设置为3412:表示双字元件高低字颠倒,但字内高低字节不颠倒。
以上数据解码0X162E000C,即十进制整数372113420。
字节顺序设置为4321:表示双字元件内4个字节全部颠倒。
以上数据解码0X2E160C00,即十进制整数773196800。
端口参数
u 超时时间:GRM110向设备发出命令后等待设备回应的时间,若超出超时时间,设备没有回应,则视为本次通讯失败。
u 失败重试次数:第一次通讯失败后,允许重试的次数。超过此次数,则认为通讯故障($COMERROR=1)。
u 通讯延时:GRM110向设备发出下一次通讯之前特地加入的延迟时间,主要是因为某些从机反应比较慢。一般使用协议默认值即可。
某些简单的MODBUS仪表,反应速度比较慢,可以加大延迟时间到1秒或者2S。
u 尝试恢复间隔:在运行期间,如果有一台设备如PLC发生故障,则GRM110能够自动诊断,并停止采集与该设备相关的数据,但会每隔尝试恢复间隔去重新与该设备的通讯。
通讯过程举例:
通讯正常情况下:
通讯异常情况下:
假设某从机一直没有回应,失败重试次数设置为2次
如上图重试2次收不到该从机数据后,认为该从机设备通讯故障,$COMERROR=1,以后会跳过该从站的通讯,和没有故障的其他从站通讯,直到经过尝试恢复间隔后,按上图过程重试出错的从站。
设备是指带有通讯口的PLC或者各类控制板,采集卡,变频器等。
在工程管理器中,相应的通讯端口上点击右键,选择“新建设备”。
由于新建的设备使用已经建立的端口的完全相同的通讯协议,因此只需指定设备名和从机地址,从机地址和连接的PLC下面设置的必须一致。在GRM110的一个485口下,可以并联多个设备(设备使用相同的通讯协议,并具有不同的从机地址)。
完成设备定义后,在数据词典中,双击需要配置的变量,在编辑对话框中可完成变量到设备寄存器的关联。下图所示,GRM110周期性读取MODBUS RTU从机设备“PLC从站1”的保持寄存器100的值,经过线性转换后把新值赋给变量“冷冻水出水温度”。
u IO设备:选择工程中已定义的设备,如上图选择的定义的设备“PLC从站1”。
u 寄存器类型:与连接的从机设备类型有关,不同设备选择不同的寄存器。
u 只写不读:GRM110不读取变量对应的寄存器,只能写该寄存器。
某些MODBUS设备并未完整实现MODBUS协议,对某些寄存器的读不响应,这时请勾上此选项。
u IO数据类型:IO数据类型必须和从机设备中原始数据的实际类型一致。
变量类型一般应和IO数据类型选为一样,除非需要类型转换。
例如:从机PLC内部的寄存器是浮点数形式存储,温度为25.3度,IO数据类型必须选为浮点数。
若希望在GRM110上只看到整数部分,可以将变量类型设置为整数,这样在GRM110上看到的数据就是25度。
u 地址:PLC中寄存器的地址。
u 线性转换:线性转换是将采集到的IO设备中的值(即原始值)与工程中实际应用值(即工程值)按照固定的比例系数进行转换,如上图,表示从PLC读到原始值后缩小10倍,比如从PLC中读到整数(INT16)数值206,在GRM模块中变为了浮点数20.6
线性转换关系如图所示。
?举例:有一个IO设备为电压仪表,在实际电压为0时产生0值,在满量程500V时产生1024的值。如果我们希望将采集的IO数据(0-1024)直接转换成实际对应的电压(0-500V),可以将变量“电压”设置如下:
最小原始值=0 最大原始值=1024
最小值=0 最大值=500
其转换比例=(500-0)/(1024-0)=0.4883
则:如果从IO设备送来的原始值为512时,变量“电压”的实际值512*0.488=250V。
GRM110作为主机时,一个串口下可以连接多个相同协议的PLC或者仪表,将485的A,B并联在一起即可.下图以西门子110的接线为例。
要求PLC采用同样的协议,波特率,奇偶校验,停止位相同,从站地址设置为不同(在PLC编程软件里面也要设置从站地址)!
典型应用: GRM110一个串口C0M2接西门子110 PLC,另外一个串口COM1接MODBUS仪表。
需要将MODBUS仪表的数据发送到西门子PLC。
1. 首先配置一个西门子200 PLC的变量,MODBUS的数据将发送到该变量的寄存器地址。
2. 配置MODBU仪表的变量
3. 使用定时器每秒将仪表数据传送到PLC即可,注意被写入的变量放在表达式的右边。
GRM110作为主机时,连接的每个设备都包含下表所列的特殊寄存器。
当GRM110的一个485通讯端口下,同时挂有多个从站时,特殊寄存器可以用来识别是哪个从站通讯故障,或者单独禁用某个从站!
注意:只有当GRM110某个485通讯端口下全部从站都通讯故障时,$COMERROR变量才会为1.
名称 | 地址 | 含义 |
禁用通讯标志 | 1 | 可读写。关联的变量值为1时表示禁止GRM110与该设备通讯,为0时表示允许GRM110与该设备通讯。关联的变量自动具有断电保存属性。 |
通讯错误标志 | 2 | 只读。关联的变量值为1时表示GRM110与该设备通讯故障,通讯恢复时自动清零。 |
通讯错误码 | 3 | 只读。当GRM110与该设备通讯故障时,关联的变量值表示故障原因。-1表示设备无响应,-2表示收到错误数据,其他数值含义因协议而异。 |
如下:可以建立一个变量,关联到该设备的特殊寄存器,表征该设备是否通讯故障: