我们本着我们最初的想法,构造了目前的可编程控制器和扩展系统。在系统中,网络通信尤为重要,我们要在这里仔细论述腾控PLC的网络通信。
对于一个复杂的系统而言,通信模型非常重要。
因为我们整个网络系统是构建在TCP/IP网络之上的,我们的通信模型实际就是网络通信模型。在系统中,有数据的产生者,有数据的使用者,有数据的存储者。我们采用的是C/S模型。
数据的产生者是作为服务器使用的,数据的使用者和存储者都作为客户端。考虑到与外部接口,要有开放的协议。所以我们在控制器侧要支持2种协议。
一种为标准的MODBUS TCP协议,主要是控制器与上位机通信,控制器作为服务器使用。TCP协议开销比较大。这样可以提供给客户一个标准的接口,几乎所有的软件都支持MODBUS协议和MODBUS TCP协议。
一种是PLC内部通信的协议,我们采用的是UPD协议,UPD协议是无连接的协议,开销比较小,而且可以支持无限制的客户端数量。这样可以达到较高的通信速度。这个协议我们称之为ENET协议。
MODBUS TCP协议在这里就不用多讲了,很多资料。
我们把内部的通信协议称之为ENET协议,服务器协议端口为7000.每个T9系列都支持ENET的服务器。而具有运算能力的T9系列控制器支持ENET的客户端,最多同时可以发起8个通信。
首先我们定义PLC间内部通信,PLC间通信通过中间变量进行,力争在一个通信报文中完成所有的变量交换,我们定义了
功能码1,读中间变量,
功能码2 , 写中间变量,
功能码3,读写中间变量。
对于远程I/O,我们定义了6种功能码
功能码4 , 读开关量输入,
功能码5, 读开关量输出,
功能码6, 读写开关量输入输出
功能码7, 读模拟量输入
功能码8, 写模拟量输出
功能码9, 读写模拟量
具体的报文,参见文档
编程方式
为了方便用户编程,我们抽象了网络通信,做到让用户编程最为简单,定义了ENET通信的功能块,
EN通迅使能端,上升沿有效,激活时将启动本次通迅,断开时结束本次通迅,布尔类型
IPAddr 要通迅的控制器IP地址,字符串类型
RW 通迅使用的功能码,字节类型,共九种功能码。
MRAddr 本机读数据存放地址,单字类型
YRAddr 远程读数据存放地址,单字类型
RLength写操作的数据长度,单字类型
MWAddr本机写数据存放地址,单字类型
YWAddr 远程写数据存放地址,单字类型
WLength写操作的数据长度,单字类型
TimeOut通迅超时时间,单字类型(单位:10ms)
ENO 输出使能,布尔类型
Done 通迅状态,布尔类型,True为正常、False 为错误ErrMsg通迅状态码,0为正常,详见表(2)
编程举例
只要把这个功能块使能,指定服务器的IP地址,起始地址,读写取长度,本地存储地址,无需用户编程干预,自动运行。
共0条 [查看全部] 网友评论