没有实物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。如下图所示:

(0)

相关推荐