如题,这是一个朋友想学习西门子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。如下图所示:
本文暂时没有评论,来添加一个吧(●'◡'●)