南大傲拓PLCUDP功能块 点击:763 | 回复:0



genialywg

    
  • 精华:3帖
  • 求助:0帖
  • 帖子:43帖 | 121回
  • 年度积分:0
  • 历史总积分:878
  • 注册:2008年5月20日
发表于:2017-10-30 11:31:22
楼主

南大傲拓带以太网接口的CPU模块,都支持UDP和TCP指令功能块,用户可以自己编写以太网报文。

一、UDP通讯

1UDP通讯协议特点

1UDP是面向非连接的协议,通讯双方不发生建立连接的信息;

2)虽然不需要建立连接,但通讯双方都需要调用TCON,注册通讯服务;

3UDP发送端发送报文后,接受端不需要应答,也不判断是否正确接受;

4UDP不是流式服务,是以数据报文方式传输的,发送接受的数据长度可以不一致,但发送端数据报文的长度不应大于接收端。

2UDP协议自定义规约实现方法

1)功能块简介

要实现UDP通讯,需要使用功能块TCONTDISCONTUSENDTURECVTCON建立通讯连接或注册通讯服务,TDISCON断开通讯连接或注消通讯服务,TUSEND组织发送报文,TRECV组织接受报文。

2)实现步骤

下面我们以实际编程举例说明UDP通讯的实现过程。

第一步、建立变量

在功能块中会使用到ETH_PARAM数据类型的变量,ETH_PARAM是系统自带的数据类型,用于以太网通讯,下面我们建变量con选择数据类型ETH_PARAM

 

同样的方法,我们建立sentorefrom两变量,这里变量名任意取名。

 

 

 

CON变量展开参数说明如下:

TYPE:端口通讯协议类型选择,数据类型DWORD,默认十进制,1TCP clint2TCP server3UDP协议,当使用UDP协议通讯时,TYPE设置为3

TIMEOUT:通讯(发送接收)超时时间设置,数据类型WORD,默认十进制,单位10ms

PORT:端口号设置,数据类型WORD,默认十进制,注意避免设置为502,此端口号已被系统占用;

IPADDRIP地址,低字节在先,即从下往上排IP地址,上图中表示的IP为:192.168.1.101

RSVD:系统预留备用,目前未使用。

 

建立变量多维变量sedbufrebuf。输入变量名,数据类型选byte,维数根据实际报文长度填写,如建立100维变量,在维数栏输入100,同样建rebuf变量。

 

 

第二步、建立功能块

TCON功能块:

 

功能块作用:注册通讯服务。

管脚说明:

EN:功能块使能,数据类型:BOOLTCON功能块通过上升沿触发使能;

ID:连接号,数据类型:WORD,每个建立的以太网通讯使用唯一的ID, 同一组通讯中TDISCONTUSENDTRECVIDTCONID号相同,如这里都设置为2

CON:参数设置,数据类型:ETH_PARAMCON管脚的具体设置如下。

 

TYPE设置为3TIMEOUT设置为10,表示100msPORT端口号设置为3000(避免502即可);IPADDR从下往上排表示IP地址,这里设置的IP为:192.168.1.101RSVD是系统预留备用的,不填写。

 

STA:通讯状态输出,数据类型WORD:(以下功能块同)

0x01:正在操作

0x02:操作成功

0x81:内部错误

0x82ID已连接

0x83ID未连接

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,表示100msPORT端口号设置为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,建立注册服务后生效。




热门招聘
相关主题

官方公众号

智造工程师