kaiyun官方注册
您所在的位置: 首页> 其他> 设计应用> 腾控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网站原创,未经授权禁止转载。
Baidu
map