西门子S7-1500 PLC之间、PLC与HMI如何建立通信

简介: 西门子S7-1500关于通信的功能非常完善,可以说通信无处不在,这其中包括PLC之间的通信,PLC与人机界面的通信。在博途软件中,支持拖拽方式,通过变量的拖拽自动建立通信,这极大的提高了工程效率。今天我们从三个方面介绍S7-1500的通信。看完本文您会发现通信也是如此简单与高效。

西门子S7-1500关于通信的功能非常完善,可以说通信无处不在,这其中包括PLC之间的通信,PLC与人机界面的通信。在博途软件中,支持拖拽方式,通过变量的拖拽自动建立通信,这极大的提高了工程效率。今天我们从三个方面介绍S7-1500的通信。看完本文您会发现通信也是如此简单与高效。


S7-1500PLC通信功能强大,灵活方便,常用的S7通信方式可以在通信函数块中确认通信状态。对于熟悉经典step7的工程师,可以按照原有的方式,即先建立连接,再编写通信程序的方式建立通信。下面以BSEND/BRCE 为例,介绍实现的过程。


首先进入网络视图,点击连接按钮选择S7连接。通过鼠标拖拽的方式,在两台S7-1500PLC的通信接口之间建立S7通信连接。通信连接建立以后,连接将高亮显示。在通信连接的属性中,可以查看使用的通信接口和通信地址等信息。这里需要注意每一个CPU 的连接ID 这些连接ID 与通信函数相互关联。


640.jpg


通信连接建立后就可以编写通信程序了。打开一个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查看具体的故障信息。


640.jpg


打开另一个CPU中的OB1。在S7通信指令中调用接收函数块BRCV。赋值1使能接收功能。将连接ID 16#100赋值到ID参数,R_ID 与通信方必须相同,为16#1。

 

将数据块DB1的前10个整数作为接收区。实际接收数据的长度可以从MW2中读出。如果接收到新的数据,NDR将返回一个脉冲信号,示例中赋值M1.2。如果通信故障,M1.3将为1。可以通过MW4查看具体的故障信息。


640.jpg


分别将连接配置与通信程序下传到CPU中。首先需要监控通信连接是否建立。选择在线。可以看到,通信连接已经建立。打开变量监控表。复制发送数据。然后使能发送信号M1.1在接收区可以看到数据接收成功。


640.jpg


S7通信也支持单边编程的方式进行通信,例如使用通信函数块PUT将本方的数据存放到对方的数据区,也可以使用通信函数块GET 将对方的数据读回并存储于本方的数据区。

 

使用TIA博途V13进行的PUT/GET 通信方式将更简单,通过向导的方式就可以实现通信。下面以PUT为例介绍S7单边通信方式。

 

打开一个CPU中的OB1。在S7通信指令中直接调用通信函数块PUT。在块属性中选择组态标签。在连接参数栏中选择需要通信的站点。选择站点后可以选择使用的通信接口,例如两个站点都使用接口1进行通信。这样通信地址就可以确定。这时系统会自动创建一个S7连接及ID号。也可以选择在项目中已经创建过的S7连接。如果勾选主动建立连接选项,则本方主动发起连接的创建,对方则自动取消这个选项。


image.jpeg


点击块参数栏。赋值M1.1到通信请求参数,每一个上升沿将通信一次。在写入区域需要指定通信伙伴的接收地址区,例如开始地址为P#DB1.DBX0.0,长度为10个整数。在发送区域指定本方的数据发送区,例如开始地址同样为P#DB1.DBX0.0,长度为10个整数。


640.jpg


如果发送数据通信方成功接收,DONE将返回一个脉冲信号,示例中赋值M1.2。如果通信故障,M1.3将改为1。可以通过MW4查看具体的故障信息。完成向导功能后,配置的参数将自动复制到通信函数。

 

由于通信伙伴可以通过PUT/GET通信方式修改数据通信方式透明,所以在CPU中缺省状态为锁存状态。如果需要通信,必须使能被访问方的读写功能。例如在CPU的属性中选择保护栏勾选使能通信功能。然后分别将连接配置与通信程序下传到CPU中。


640.jpg


检测的方法未变,首先需要监控通信连接是否建立。选择在线。可以看到,通信连接已经建立。打开变量监控表。赋值发送数据,然后使能发送信号M1.1在接收区可以看到数据接收成功。

 

如果需要读取对方的数据,也可以调用GET通信函数方式同样简单。首先我们新建一个HMI站点。我们以KTP400comfort 为例。新建HMI可以借助向导完成与指定的PLC的连接以及画面布局、报警等界面设计。但本文通过使用鼠标拖放的功能快速建立与PLC的通信。因此我们点击取消按钮进入下一步工作。

 

在通常的情况下,可以在设备和网络视图中通过鼠标点击的方式建立HMI与PLC的连接。如果在一个项目中需要连接多个PLC,不考虑之间过程,只考虑通信的结果的情况下,使用拖放变量到HMI界面的方式将更加简单。下面以示例方式详细介绍。

 

在OB1中创建一个简单的与操作程序。在项目树的PLC变量中,打开默认变量表,可以看到程序中使用到的变量。将变量M100.0,M100.1和M100.2从变量表中拖放到HMI界面中。在设备和网络视图中,我们可以看到两者的HMI连接自动创建完毕。


640.jpg


编译并下载PLC程序。监控OB1程序运行状态。启动HMI仿真器。通过IO域分别给M100.0,M100.1赋值,同时观察OB1程序执行状态的变化。可以看到通信关系已经建立。

相关文章
|
5月前
|
安全 数据处理
LabVIEW与PLC通讯方式及比较
LabVIEW与PLC通讯方式及比较
106 0
|
5月前
|
监控
LabVIEW通过OPC与PLC通讯
LabVIEW通过OPC与PLC通讯
120 0
|
监控 安全 网络协议
设备组态网络应用与通信系统
设备组态网络应用与通信系统
|
7月前
|
存储 监控 网络协议
使用Modbus将LabVIEW连接到任何PLC
使用Modbus将LabVIEW连接到任何PLC
80 0
|
7月前
|
Java
java实现上位机与西门子PLC的通讯设置
这段代码创建了一个ZCAN_Transmit_Data数组,初始化并设置了数组中的第一个元素,包括写入数据、传输类型为1。然后,创建了一个ZCAN_CAN_FRAME对象,指定了CAN_ID和数据长度为8,并将十六进制字符串转换为字节数组填充到数据字段。将这个帧赋值给ZCAN_Transmit_Data对象。最后通过ZLGCAN接口发送数据,如果返回值不等于1,则抛出异常,否则返回发送结果。
301 0
西门子S7-1200组态网络连接,组态HMI连接
西门子S7-1200在图形化的网络视图工作区中,可以很方便地将具有联网能力的设备进行组网,下面我们就简单介绍如何组态网络连接及如何组态HMI连接。
西门子S7-1200组态网络连接,组态HMI连接
|
网络协议
西门子S7-200 SMART以太网通信如何组态?
西门子S7-200 SMART以太网通信如何组态?
西门子S7-200 SMART以太网通信如何组态?
|
网络协议 Java 程序员
慧安-PLC4X学习
慧安-PLC4X学习
360 0
|
存储 索引
西门子S7-200 SMART与变频器的USS协议通信
今天我们来学习西门子S7-200 SMART与变频器的USS协议通信,下面先介绍一下变频器参数设置。
西门子S7-200 SMART与变频器的USS协议通信
|
存储 索引
西门子S7-200SMART与变频器的通信如何设置?USS通信协议如何组态?
今天我们来介绍西门子S7-200SMART与变频器的通信如何设置,USS通信协议如何组态,下面先介绍一下变频器参数设置。
西门子S7-200SMART与变频器的通信如何设置?USS通信协议如何组态?