socket bufferedinputstream通信读取不到服务器返回的响应_三菱QUnCPU内置以太网Socket通信(TCP篇)...

声明:本文属于原创作品,版权归原作/译者所有,未经允许,严禁转载!

c6810bd2e32be2077519f3b28907e481.png

此次做一个使用三菱Q系列PLC内置以太网功能走标准以太网socket通讯的示例。该功能是通过专用指令与以太网连接的对象设备以 TCP/UDP 进行任意数据的发送接收的功能 。

bab81be0209df0de449eaff575eba209.png

发送数据的示意图


在Socket通信功能中,为了实现 TCP/UDP 均可通过该设备进行多个通信,使用对通信进行识别的端口编号。 发送的情况下 :指定发送源 CPU 模块的端口编号及发送目标通信对象侧的端口编号。
接收的情况下 :指定 CPU 模块的端口编号,读取可发送至该处的数据

54e3149567b9f86842509086d52e375a.png

(1) TCP 的连接动作TCP 的连接中有 Active 打开及 Passive 打开。首先,TCP 连接等待侧以指定的端口编号进行 Passive 打开。TCP 连接侧指定等待 Passive 打开的端口编号后进行 Active 打开。
由此,TCP 连接将被执行,连接被建立且变为可通信状态。(a) Active 打开是对被动连接的 TCP 连接等待对象设备进行主动打开处理的 TCP 连接方式 (Active)。(b) Passive 打开Passive 打开中有以下 2 种类型 TCP 连接方式

62ba3476c6cdf150f532b1718bbbc0d5.png

Passive连接方式

8d7dd5ea13263cae3dd6f87536db3996.png

通讯流程图

参数设置样本程序中的使用的参数设置如下所示。
工程窗口 [Parameter( 参数 )] [PLC Parameter( 可编程控制器参数 )] [Built-in EthernetPort Setting( 内置以太网端口设置 )] ( 打开设置 ) 按钮

cea2b8b533efd548d528664865e9d7ed.png

参数设置

5eff7648cb55178da24b9520799bc544.png

通讯说明

e1a9c7bb288d52261f639dc70c7be1a8.png

示例程序

套接字通信功能的其它注意事项如下所示。

(1) 端口编号本站端口编号 0001H ~ 03FFH 一般被分配给预约的端口编号 (WELL KNOWN PORT NUMBERS),F000H ~ FFFEH 为其它通信功能所使用,因此建议使用端口编号 0400H ~ 1387H、1392H ~ EFFFH。1388H ~ 1391H 为系统所使用,因此请勿指定。此外,使用 FTP 功能时,请勿在套接字通信功能中指定 0014H ~ 0015H。使用时间设置功能 (SNTP) 时,请勿在套接字通信功能中指定 007BH。使用数据记录传送功能时,请勿在套接字通信功能中指定 F000H ~ FFFEH。(2) 接收数据的读取接收状态信号 (SD1286) 变为 ON 时,应进行接收数据的读取。


(2)如果持续处于多个接收数据未读取的状态,内置以太网端口的通信有可能会受到影响。(3) 关闭条件在通过 TCP 进行的通信中,除来自于通信对象的关闭请求以外,在下述情况下打开完成信号将变为 OFF 而执行关闭。
(3)发生了存在确认功能的超时的情况下
·接收了来自于对象设备的强制关闭的情况下(4) TCP 连接要素TCP 连接通过下述 4 个要素进行管理,该 4 个要素相同的连接只能同时建立 1 个。同时使用多个 TCP 连接的情况下,应将 4 个要素中的某 1 个设置为不相同。CPU 模块侧的 IP 地址、CPU 模块侧的端口编号、对象设备侧的 IP 地址、对象设备侧的端口编号

(4) 与同一连接的再连接在通过 TCP 进行的通信中,关闭了连接后,重新连接通信对象 (IP 地址 )、本站端口编号、通信对象端口编号相同的连接的情况下,应等待 8 秒以上之后再进行。再连接时无法等待的情况下,建议变更 Active 打开侧的本站端口编号后进行连接。

(5) 通信中进行文件访问时的注意事项CPU 模块的文件访问处理将优先于以太网通信处理。因此,使用套接字通信功能时如果通过 FTP 或编程工具等进行文件访问,套接字通信功能的处理有可能会延迟。
通过套接字通信功能在对象设备侧进行响应时间监视时进行文件访问的情况下,应设置为加上了文件访问所需时间的监视时间。


(6) 接收数据长度的确认通过 TCP 进行通信时,由于不存在通信数据分割概念,因此有时会发生连续发送的数据在接收侧被合并,批量发送的数据在接收侧被分割的现象。接收侧应根据需要确认接收数据长度,进行处理。在 CPU 侧进行接收的情况下,数据长度确定时,建议在固定长度模式中使用。
在对象设备侧进行接收的情况下,应按下图所示确认接收数据长度之后再进行处理。

欢迎各位工控同仁在评论区留言讨论。

声明:本文属于原创作品,版权归原作/译者所有,未经允许,严禁转载!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值