西门子S7-1500 PLC之间的通信,PLC与人机界面HMI的通信
西门子S7-1500关于通信的功能非常完善,可以说通信无处不在,这其中包括PLC之间的通信,PLC与人机界面的通信。在博图软件中,支持拖拽方式,通过变量的拖拽自动建立通信,这极大的提高了工程效率。我们来介绍S7-1500的通信,看完本文您会发现通信也是如此简单与高效。
S7-1500PLC通信功能强大,灵活方便,常用的S7通信方式可以在通信函数块中确认通信状态。对于熟悉经典step7的工程师,可以按照原有的方式,即先建立连接,再编写通信程序的方式建立通信。下面以BSEND/BRCE 为例,介绍实现的过程。
首先进入网络视图,点击连接按钮选择S7连接。通过鼠标拖拽的方式,在两台S7-1500PLC的通信接口之间建立S7通信连接。通信连接建立以后,连接将高亮显示。在通信连接的属性中,可以查看使用的通信接口和通信地址等信息。这里需要注意每一个CPU 的连接ID 这些连接ID 与通信函数相互关联。
通信连接建立后就可以编写通信程序了。打开一个CPU 中的OB1,在S7通信指令中调用发送函数块BSEND。赋值M1.1到发送请求参数,每一个上升沿发送一次。
将连接ID 16#100复制到ID 参数。
在R_ID参数中,用户可以自由定义一个通信对,即通信双方的R_ID必须相同。示例中为16#1。SD-1为数据发送区,示例中将发送DB1的前10个整数。
赋值MW2到发送长度,如果值为0,表示将发送区的数据全部发送。如果发送数据,通信方成功接收,DONE将返回一个脉冲信号,示例中赋值M1.2。如果通信故障,M1.3将为1,可以通过MW4查看具体的故障信息。
打开另一个CPU中的OB1。在S7通信指令中调用接收函数块BRCV。赋值1使能接收功能。将连接ID 16#100赋值到ID参数,而ID 与通信方必须相同,为16#1。
将数据块DB1的前10个整数作为接收区。实际接收数据的长度可以从MW2中读出。如果接收到新的数据,NDR将返回一个脉冲信号,示例中赋值M1.2。如果通信故障,M1.3将为1。可以通过MW4查看具体的故障信息。
分别将连接配置与通信程序下传到CPU中。首先需要监控通信连接是否建立。选择在线。可以看到,通信连接已经建立。打开变量监控表。复制发送数据。然后使能发送信号M1.1在接收区可以看到数据接收成功。
S7通信也支持单边编程的方式进行通信,例如使用通信函数块PUT将本方的数据存放到对方的数据区,也可以使用通信函数块GET 将对方的数据读回并存储于本方的数据区。
使用TIA博图V13进行的PUT/GET 通信方式将更简单,通过向导的方式就可以实现通信。下面以PUT为例介绍S7单边通信方式。
打开一个CPU中的OB1。在S7通信指令中直接调用通信函数块PUT。在快属性中选择组态标签。在连接参数栏中选择需要通信的站点。选择站点后可以选择使用的通信接口,例如两个站点都使用接口1进行通信。这样通信地址就可以确定。这时系统会自动创建一个S7连接及ID号。也可以选择在项目中已经创建过的S7连接。如果勾选主动建立连接选项,则本方主动发起连接的创建,对方则自动取消这个选项。
点击快参数栏。赋值M1.1到通信请求参数,每一个上升沿将通信一次。在写入区域需要指定通信伙伴的接收地址区,例如开始地址为P#DB1.DBX0.0,长度为十个整数。在发送区域指定本方的数据发送区,例如开始地址同样为P#DB1.DBX0.0,长度为十个整数。
如果发送数据通信方成功接收,当将返回一个脉冲信号,示例中赋值M1.2。如果通信故障,M1.3将改为1。可以通过MW4查看具体的故障信息。完成向导功能后,配置的参数将自动复制到通信函数。
由于通信伙伴可以通过PUT/GET通信方式修改数据通信方式透明,所以在CPU中缺省状态为锁存状态。如果需要通信,必须使能被访问方的读写功能。例如在CPU的属性中选择保护栏勾选使能通信功能。然后分别将连接配置与通信程序下传到CPU中。
检测的方法未变,首先需要监控通信连接是否建立。选择在线。可以看到,通信连接已经建立。打开变量监控表。赋值发送数据,然后使能发送信号M1.1在接收区可以看到数据接收成功。
如果需要读取对方的数据,也可以调用GAP 通信函数方式同样简单。首先我们新建一个HMI站点。我们以KTP400comfort 为例。新建HMI可以借助向导完成与指定的PLC的连接以及画面布局、报警等界面设计。但本文通过使用鼠标拖放的功能快速建立与PLC的通信。因此我们点击取消按钮进入下一步工作。
在通常的情况下,可以在设备和网络视图中通过鼠标点击的方式建立HMI与PLC的连接。如果在一个项目中需要连接多个PLC,不考虑之间过程,只考虑通信的结果的情况下,使用拖放变量到HMI界面的方式将更加简单。下面以示例方式详细介绍。
在OB1中创建一个简单的与操作程序。在项目树的PLC变量中,打开默认变量表,可以看到程序中使用到的变量。将变量M100.0,M100.1和M100.2从变量表中拖放到HMI界面中。在设备和网络视图中,我们可以看到两者的HMI连接自动创建完毕。
编译并下载PLC程序。监控OB1程序运行状态。启动HMI仿真器。通过IO域分别给M100.0,M100.1赋值,同时观察OB1程序执行状态的变化。可以看到通信关系已经建立。