首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

没有实物PLC怎么来学习两台PLC之间的S7通信

如题,这是一个朋友想学习西门子S7通信,但是,没有PLC,不知道怎么学习,答案是可以学习的,我们可以使用PLCSIM来仿真运行。

毕竟是仿真器,我们就要知道PLCSIM仿真器究竟支持哪些通信指令,因为PLCSIM也不是万能。我以两个400CPU为例:

S7-PLCSIM 支持以下通讯块来实现两个S7-400 CPU模块间的通信:

SFB8 "USEND"

SFB9 "URCV"

SFB12 "BSEND"

SFB13 "BRCV"

SFB15 "PUT"

SFB14 "GET"

SFB19 "START"

SFB 20 "STOP"

SFB 22 "STATUS"

SFB 23 "USTATUS"

也就是说,我们可以仿真上述这些指令,今天小编就以SFB12和SFB13为例来跟大家一步步操作,看看究竟是如何实现通信功能的。

二、组态硬件

我们先组态两个400的PLC,分别是414和412,并分别设置IP地址分别为192.168.0.1和192.168.0.2

三、组态网络

建立两个站点之间的S7连接,单击CPU414-3PN/DP,单击鼠标右键,选择"插入新连接", 在"插入新连接",对话框选择通讯方CPU(Partner),选择连接类型S7 连接(默认选择),如下图

点击"确定"按钮进入"S7连接 "属性对话框设置如下图,在连接路径"连接路径"中可以看到通讯双方CPU及通讯接口地址。

点击"确定"按钮,在网络结构图下方列表中生成S7连接如下图,编译保存完成网络组态。

四、开始编程,在两个CPU中分别进行编程,本例中将使用SFB12和SFB13,关于系统功能块的说明,大家可以到西门子官网去找"SIMATIC 用于S7-300_400系统和标准函数"。这里就不过多的介绍了,本文主要以仿真举例为主。

本文在414-3PN/DP的OB1中调用SFB12,412的OB1中调用SFB13实现两个PLC之间的S7通讯,通讯长度6个字节。

编写好的程序如下图所示:

五、开始仿真

分别打开两个仿真器:并将两个程序分别下载对应的仿真器中,

下面我们进行通讯测试:将两个下载到PLCSIM中的站点CPU切换到RUN-P模式,打开Netpro查看激活的连接状态,可以看到连接已经建立成功。如下图所示:

到此,我们的工作就都做完了,我们看看结果,在两个站点BLOCK中各建一个变量表,PLC1监控发送缓冲区MB0~MB5,M100.0由0变1产生上升沿时将数据发送给PLC2;PLC2监控接收缓冲区MB0~MB5。如下图所示:

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20201031A01X2O00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券