南大傲拓带以太网接口的CPU模块,都支持UDP和TCP指令功能块,用户可以自己编写以太网报文。
一、UDP通讯
1、UDP通讯协议特点
1)UDP是面向非连接的协议,通讯双方不发生建立连接的信息;
2)虽然不需要建立连接,但通讯双方都需要调用TCON,注册通讯服务;
3)UDP发送端发送报文后,接受端不需要应答,也不判断是否正确接受;
4)UDP不是流式服务,是以数据报文方式传输的,发送接受的数据长度可以不一致,但发送端数据报文的长度不应大于接收端。
2、UDP协议自定义规约实现方法
1)功能块简介
要实现UDP通讯,需要使用功能块TCON、TDISCON、TUSEND、TURECV。TCON建立通讯连接或注册通讯服务,TDISCON断开通讯连接或注消通讯服务,TUSEND组织发送报文,TRECV组织接受报文。
2)实现步骤
下面我们以实际编程举例说明UDP通讯的实现过程。
第一步、建立变量
在功能块中会使用到ETH_PARAM数据类型的变量,ETH_PARAM是系统自带的数据类型,用于以太网通讯,下面我们建变量con选择数据类型ETH_PARAM。
同样的方法,我们建立sento、refrom两变量,这里变量名任意取名。
CON变量展开参数说明如下:
TYPE:端口通讯协议类型选择,数据类型DWORD,默认十进制,1为TCP clint,2为TCP server,3为UDP协议,当使用UDP协议通讯时,TYPE设置为3;
TIMEOUT:通讯(发送∕接收)超时时间设置,数据类型WORD,默认十进制,单位10ms;
PORT:端口号设置,数据类型WORD,默认十进制,注意避免设置为502,此端口号已被系统占用;
IPADDR:IP地址,低字节在先,即从下往上排IP地址,上图中表示的IP为:192.168.1.101
RSVD:系统预留备用,目前未使用。
建立变量多维变量sedbuf、rebuf。输入变量名,数据类型选byte,维数根据实际报文长度填写,如建立100维变量,在维数栏输入100,同样建rebuf变量。
第二步、建立功能块
TCON功能块:
功能块作用:注册通讯服务。
管脚说明:
EN:功能块使能,数据类型:BOOL,TCON功能块通过上升沿触发使能;
ID:连接号,数据类型:WORD,每个建立的以太网通讯使用唯一的ID号, 同一组通讯中TDISCON、TUSEND、TRECV的ID和TCON的ID号相同,如这里都设置为2;
CON:参数设置,数据类型:ETH_PARAM,CON管脚的具体设置如下。
TYPE设置为3;TIMEOUT设置为10,表示100ms;PORT端口号设置为3000(避免502即可);IPADDR从下往上排表示IP地址,这里设置的IP为:192.168.1.101;RSVD是系统预留备用的,不填写。
STA:通讯状态输出,数据类型WORD:(以下功能块同)
0x01:正在操作
0x02:操作成功
0x81:内部错误
0x82:ID已连接
0x83:ID未连接
0x84:连接错误
0x85:操作超时
0x86:类型非法
0x87:已达到最大连接数
0x88:操作太频繁
0x89:发送∕接收出错
TUSEND功能块:
功能块作用:发送报文。
管脚说明:
EN:功能块使能,数据类型:BOOL,通过上升沿触发使能;
ID:连接号,数据类型:WORD,与对应的TCON功能块ID号相同,且不和项目中其他ID号重复;
LEN:发送数据的长度(字节数),数据类型WORD,最大1472字节,这里设置为100,表示发送数据的长度为100个字节;
DATA:表示发送报文具体内容,这里连接多维变量sendbuf[0],表示需要发送的报文内容为sendbuf[0]- sendbuf[99]。
ADDR:参数设置,数据类型:ETH_PARAM,连接变量sendto,具体设置如下。
TYPE设置为3,表示选用UDP协议;TIMEOUT设置为10,表示100ms;PORT端口号设置为3000,这里填写的是发送目标设备的端口号;IPADDR表示发送目标的IP,这里设置的IP为:192.168.1.255,表示发送对象为同网段所有设备;RSVD是系统预留备用的,不填写。
STA:通讯状态输出,数据类型WORD:(同上)
TURECV功能块:
功能块作用:接收报文。
管脚说明:
EN:功能块使能,数据类型:BOOL,通过上升沿触发使能;
ID:连接号,数据类型:WORD,与对应的TCON功能块ID号相同,且不和项目中其他ID号重复;
LEN:接收数据的长度,数据类型WORD,最大1472字节,这里设置为100,表示长度为100个字节;
DATA:表示发送报文具体内容,这里连接多维变量recvbuf[0],表示需要接收的报文内容放入recvbuf[0]- recvbuf[99]中。
ADDR:参数读取,数据类型:ETH_PARAM,连接变量recvfrom,数据传输(读取)成功后,读取发送数据源的相关参数,此变量参数不需要设置,参数含义同ETH_PARAM数据类型的变量说明。
RCVD:接收到的数据长度,数据类型WORD。
STA:通讯状态输出,数据类型WORD:(同上)
TDISCON功能块:
功能块作用:解除服务器注册。
管脚说明:
EN:功能块使能,数据类型:BOOL,通过上升沿触发使能;
ID:连接号,数据类型:WORD,与对应的TCON功能块ID号相同;
STA:通讯状态输出,数据类型WORD:(同上)
3、其他说明
当设置参数改变时,建议使能TDISCON,断开服务,然后重新使能TCON,建立注册服务后生效。