三菱FX5系列CPU模块通过Socket通信命令(Socket通信功能),可以与通过以太网连接的外部设备以TCP/UDP协议收发任意数据。
*1 是用于存储从开放的对方设备中接收到的数据的区域。
[关于端口号]
Socket通信功能中,TCP及UDP均使用识别通信的端口号,以在对方设备中进行多个通信。
. 发送时:指定作为发送源的CPU模块的端口号和作为发送目标的通信对方侧的端口号。
. 接收时:指定CPU模块的端口号,并读取向其发送的数据。
一、以TCP协议进行通信时
TCP是在对方设备的端口号间建立连接,从而进行可靠的数据通信的协议。
要以TCP协议进行Socket通信时,请确认以下项目后再进行通信。
. 通信对方侧的IP地址及端口号
. CPU模块侧的IP地址及端口号
. 通信对方侧与CPU模块侧中哪一个为开放侧(Active开放及Passive开放)
[TCP的连接动作]
TCP连接有Active开放与Passive开放两种动作。
首先,在等待TCP连接的一侧所指定的端口号中,执行Passive开放。
TCP连接侧指定以Passive开放等待的端口号后,执行Active开放。
从而将执行TCP连接,建立连接后,即可实施通信。
1、Active开放
是一种对被动等待TCP连接的对方设备执行主动开放处理的TCP连接方式(Active)。
2、Passive开放
Passive开放有以下2种TCP连接方式。
1)、Unpassive
允许连接,且不对通信对方的IP地址、端口号加以限制。(可以获取以SP.SOCCINF命令连接的对方设备的IP地址、端口号。)
2)、Fullpassive
指定通信对方的IP地址、端口号,并仅对指定通信对方的IP地址、端口号允许连接。连接了指定的IP地址、端口号以外的通信对方时,
通信前将自动切断。
二、以UDP协议进行通信时
UDP通信是不进行顺序控制、重发控制的简单协议。
要以UDP协议进行Socket通信时,应确认以下项目后再进行通信。
. 通信对方侧的IP地址及端口号
. CPU模块侧的IP地址及端口号
三、Socket通信功能命令
Socket通信功能命令是在CPU模块中使用Socket通信功能所需的命令。
┌───────┬──────────────────┐
│命令 │内容 │
├───────┼──────────────────┤
│SP.SOCOPEN │建立连接 │
├───────┼──────────────────┤
│SP.SOCCLOSE │切断连接 │
├───────┼──────────────────┤
│SP.SOCRCV │读取所接收的数据(END处理读取) │
├───────┼──────────────────┤
│SP.SOCSND │发送数据 │
├───────┼──────────────────┤
│SP.SOCCINF │读取连接信息 │
├───────┼──────────────────┤
│S(P).SOCRDATA │读取Socket通信接收数据区域的数据。 │
└───────┴──────────────────┘
四、Socket通信功能的其他注意事项
1、端口号
本站端口号的1~1023(0001H~03FFH)一般为保留端口号(WELL KNOWN PORT NUMBERS),而61440~65534(F000H~FFFEH)则用于其他通信功能,因此建议使用1024~5548、5570~61439(0400H~15ACH、15C2H~EFFFH)。
5549~5569(15ADH~15C1H)已被系统使用,请勿指定。
使用支持iQ Sensor Solution的功能时,请勿在Socket通信功能中指定45237(B0B5H)、61440~65534(F000H~FFFEH)。
2、接收数据的读取
在接收状态信号(SD10682.n)变为ON时,执行接收数据的读取。
如果大量接收数据一直未被读取,可能会对内置以太网端口的通信产生影响。
3、关闭的条件
TCP通信中,除了来自通信对方的关闭请求以外,以下情况下开放结束信号将会OFF并关闭。
. 发生了生存确认功能超时
. 收到来自对方设备侧的强制关闭命令
4、TCP的连接要素
TCP的连接通过以下4个要素进行管理,4个要素都相同的连接,同一时间内仅可建立一个。同一时间使用多个TCP连接时,应使4个要素中的任意一个与其余3个要素不同。
. CPU模块侧的IP地址
. CPU模块侧的端口号
. 对方设备侧的IP地址
. 对方设备侧的端口号
5、与同一个连接重新连接
TCP通信中,连接关闭后,如果要对通信对方(IP地址)、本站端口号、通信对方端口号均相同的连接进行重新连接,应在经过500ms之后再进行连接。
如果无法等待,需要立即重新连接,则推荐更改Active开放侧的本站端口号以进行连接。
6、确认接收数据长度
TCP通信在通信数据上没有分隔段落的概念,因此有可能在接收侧对连续发来的数据进行整合,或在接收侧对批量发来的数据进行分割。接收侧应根据需要确认接收数据的长度,并进行处理。
Socket通信功能,Socket通信命令