西门子PLC S7-1200系列的PROFINET通信口可以做 S7 通信的服务器端或客户端(CPU V2.0及以上版本)。S7-1200 支持 S7 单边通信,仅需在客户端单边组态连接和编程,而服务器端只准备好通信的数据就行。
组态步骤如下:
1. 添加设备,设置IP地址
2.在“设备组态”中 ,选择“网络视图”栏进行配置网络,连接PLC网络
3.建立数据块,取消优化块访问
4.添加PUT,GET指令
5.功能块参数意义如下
CALL “PUT” |
, %DB3 |
//调用 PUT,使用背景DB块:DB3 |
REQ |
:=%M0.0 |
//上升沿触发 |
ID |
:=W#16#100 |
//连接号,要与连接配置中一致,创建连接时的本地连接号 |
DONE |
:=%M0.5 |
// 为1时,发送完成 |
ERROR |
:=%M0.6 |
// 为1时,有故障发生 |
STATUS |
:=%MW10 |
// 状态代码 |
ADDR_1 |
:=P#DB1.DBX0.0 BYTE 10 |
// 发送到通信伙伴数据区的地址 |
SD_1 |
:=P#DB1.DBX0.0 BYTE 10 |
// 本地发送数据区 |
CALL “GET” |
, %DB4 |
//调用 GET,使用背景DB块:DB4 |
REQ |
:=%M1.0 |
//上升沿触发 |
ID |
:=W#16#100 |
//连接号,要与连接配置中一致,创建连接时的本地连接号 |
NDR |
:=%M1.5 |
//为1时,接收到新数据 |
ERROR |
:=%M1.6 |
//为1时,有故障发生 |
STATUS |
:=%MW12 |
//状态代码 |
ADDR_1 |
:=P#DB2.DBX0.0 BYTE 10 |
//从通信伙伴数据区读取数据的地址 |
RD_1 |
:=P#DB2.DBX0.0 BYTE 10 |
//本地接收数据地址
|
6.请注意,以上例子中使用的作为服务器的PLC是固件版本V2.0的S7-1200 CPU,如果您使用固件版本为 V4.0 以上的 S7-1200 CPU 作为服务器,则需要如下额外设置,才能保证S7通信正常。
请点开CPU 的设备组态,“属性->常规->防护与安全”里“连接机制”一项需要勾选“允许来自远程对象的PUT/GET通信访问”,如下图所示:
想了解更多详情点击:西门子PLC S7-1200