《电子技术应用》
您所在的位置:首页 > 其他 > 设计应用 > 腾控ENET协议及编程示例
腾控ENET协议及编程示例
原创
王铁钢
摘要: 我们本着我们最初的想法,构造了目前的可编程控制器和扩展系统。在系统中,网络通信尤为重要,我们要在这里仔细论述腾控PLC的网络通信
Abstract:
Key words :
[摘要]:我们本着我们最初的想法,构造了目前的可编程控制器和扩展系统。在系统中,网络通信尤为重要,我们要在这里仔细论述腾控PLC的网络通信

 

[关键词]:可编程控制器 网络通信

 

      我们本着我们最初的想法,构造了目前的可编程控制器和扩展系统。在系统中,网络通信尤为重要,我们要在这里仔细论述腾控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地址,起始地址,读写取长度,本地存储地址,无需用户编程干预,自动运行。

 

 

 

 

 

 

此内容为AET网站原创,未经授权禁止转载。