一、通讯指令的了解(TSEND_C/TRCV_C)
1. TSEND_C指令
图1 TSEND_C指令
如图是TSEND_C指令,它的作用是建立连接并发送数据。对于其中各个参数的作用如下表:
参数 | 说明 |
REQ | 在上升沿启动发送作业 |
CONT | 控制通信连接 |
CONNECT | 指向连接描述结构的指针 |
DATA | 指向发送区的指针,该发送区包含要发送数据的地址和长度 |
DONE | 状态参数,可表示发送作业已成功 |
BUSY | 状态参数,可表示发送作业正在进行中 |
ERROR | 状态参数,表示出现错误 |
STATUS | 指令的状态 |
2. TRCV_C指令
图2 TRCV_C指令
如图是TRCV_C指令,它的作用是通过通信连接接收数据。对于其中各个参数的作用如下表:
参数 | 说明 |
EN_R | 启用接收功能 |
CONT | 控制通信连接 |
CONNECT | 指向连接描述结构的指针 |
DATA | 指向接收区的指针 |
DONE | 状态参数,可表示是否接收到数据 |
BUSY | 状态参数,可表示作业正在进行中 |
ERROR | 状态参数,表示出现错误 |
STATUS | 指令的状态 |
RCVD_LEN | 实际接收到的数据量 |
二、PLC作为服务端
当了解过以上两个指令后,可以对PLC进行TCP/IP通信设置。而在进行TCP/IP通讯时,PLC可以选择作为服务端或客户端进行操作。
当PLC作为服务端进行通讯时,需要先设置PLC的IP地址以及选择伙伴为客户端,之后还要设置自己的服务端口。在此地方,要注意设置的端口的占用情况,如果这个端口已被占用,则测试时就会出现连接不上的情况。
图3 PLC作为服务端的通讯配置
当PLC作为服务端配置好以后,仍需要创建一个客户端与其进行连接。在测试时,可以选择用TCP调试助手创建客户端与PLC进行通讯。以下为测试时,连接成功显示:
图4 PLC作为服务端连接测试
三、PLC作为客户端
PLC除了作为服务端也可以作为客户端,当PLC作为客户端进行通讯时,只需要更改端口配置即可,以下为测试时的端口配置:
图5 PLC作为客户端通讯配置
当PLC作为客户端时,TCP调试助手一端要创建为服务端。以下为PLC作为客户端连接成功测试:
图6 PLC作为客户端连接测试
四、扩展--TCP/IP通讯解读
在了解TCP/IP协议之前,大家可以先了解一下OSI七层参考模型。 如果仅仅是为了项目通讯应用,那TCP/IP协议就可以简单的理解为,一个数据发送端通过OSI七层之一的网络层作用,在复杂的网络环境中,为数据要发送到的位置找到一个合适的路径进行传输。更为简单来说,网络层从数据起始地址将数据传输到目标地址。所以,我们在进行TCP//IP通讯时,需要确定好两端的IP和端口,这样才能保证网络层能在复杂的网络环境中,正确的将数据传送到目标地址。