PLC的TCP/IP通讯小结

相信小伙伴们遇到TCP/IP通讯时是这样的:

但是今天遇到我,别着急,我会把我的经验分享给大家。

西门子PLC之间的TCP/IP通讯

在项目里先建立两个PLC,使其相连,因为我这边使用的TIA V18 ,正常使用PLCSIM仿真并没成功,我这里使用Advanced进行仿真。

我们要用到的指令是下图中标记出来的

这里面有两对指令:

第一对是确认PLC身份为客户端:

        TSEND_C,TRCV;

        TSEND_C:这个指令的作用是与服务端建立连接并且发送数据(也就是确认自己为客户端,给服务端发起服务请求)

        TRCV:这个指令在上一个指令建立连接成功之后,可以接受服务端给你发送的数据。

第二对是确认PLC身份为服务端:

        TRCV_C,TSEND;

        TRCV_C:这个指令的作用是与客户端建立连接并且接受数据(也就是确认自己为服务端,接收来自客户端的服务请求)

        TSEND:这个指令的作用就是在上一条指令建立连接成功之后,可以给客户端发送数据。

接下来就是具体操作了:

        对于通信的话,我这边是建立了一个循环中断块专门用于通信,,同时也建立了TCP/IP专用的DB块:

        

记得取消块的优化访问!

这里LEN和你给的DB块中的数组长度有关。当然也可以默认0。

我们点击,会弹出这么一个界面

需要注意的就是连接类型选择TCP,以及新建Connection data,下面队友端口号会自动填写,不需要修改。

哦,对了,我们每条指令的触发使用的都是M0.0,就是10HZ系统时钟,可以每100ms产生一个上升沿,触发指令运行。

此时我们第一个PLC的客户端身份已经确认。

随带的要添加接收信息的指令:

这里的ID注意要和上一张图片里配置的ID要相同。

到这里我们第一个PLC的基本配置也就神功大成了。

第二个PLC的配置:

跟之前类似,不过这里的指令要换另外一对。

这里我有一点要特别提醒:我们的通信指令因为是放在循环中断里面的,我们要特别注意循环中断的时间,如果这里时间设置的不对,很大概率会通信不上。

我个人的理解如下:

        

假设我们都使用同样的循环中断时间,以及OB1的循环时间也相同。

那么,因为系统开始的时间不一样,就会出现这种情况:

        

我们这里假设上下是同一个时间线上的,我们会发现它们的紫色OB30 循环中断块之间并没有交互的地方,此时我们需要对OB循环块的时间进行修改:

比如本来是

我们把它加快10倍:

也就会出现

我们可以看到,这样就会有两个PLC在同一时刻执行循环中断内的通信内容,这样就能够成功通信。

到此,我们就可以撒花结束,我们的通信终于神功大成。

至于西门子PLC和汇川PLC之间的通信,都大同小异,只需要确认双方身份,按照我上面的方法配置西门子PLC,至于汇川PLC,找到对应的指令,配置一下,通讯起来也不麻烦。
也可以参考我找到的教程链接:

汇川使用笔记6:TCP服务端和客户端通讯_汇川tcp通讯-CSDN博客

如果在汇川端使用Ethernet的话,我们要西门子端的中断循环块要将循环周期变短,以实现双方在同一时刻都进行通讯的指令。

OK,今天关于PLC的TCP/IP通讯就说到这里。大家有什么想法可以在评论区跟我互动哦。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值