发布时间:2019-08-24 来源:众智博远
首先为Active端编写程序。在SIMATIC 315PN-1的块中创建DB101,定义一个变量DB_VAR,变量类型为UDT65。如图15所示。
图15
在OB1中依次调用FB65,FB63,FB64,FB66,如图16,17,18,19所示:
图16
程序中的参数说明见表1
参数名 | 参数说明 |
REQ | 上升沿触发建立通信连接 |
ID | 连接ID |
CONNECT | 与变量类型为UDT65的变量相连 |
DONE | 为1时,连接正确建立 |
BUSY | 为1时,正建立连接 |
ERROR | 为1时,有故障发生 |
STATUS | 故障代码 |
表1 FB65参数说明
图17
程序中的参数说明见表2
参数名 | 参数说明 |
REQ | 上升沿触发 |
ID | 连接ID |
LEN | 数据发送的最大长度 |
DATA | 数据发送的区域 |
DONE | 为1时,连接正确建立 |
BUSY | 为1时,正建立连接 |
ERROR | 为1时,有故障发生 |
STATUS | 故障代码 |
表2 FB63参数说明
图18
程序中的参数说明见表3
参数名 | 参数说明 |
EN_R | 为1时使能 |
ID | 连接ID |
LEN | 接收区域的长度 |
DATA | 接收数据区 |
NDR | 为1时,接收完成 |
BUSY | 为1时,正在接收 |
ERROR | 为1时,有故障发生 |
STATUS | 故障代码 |
RCVD_LEN | 实际接收的数据长度 |
表3 FB64参数说明
图19
程序中的参数说明见表4
参数名 | 参数说明 |
REQ | 上升沿触发 |
ID | 连接ID |
DONE | 为1时,断开连接完成 |
BUSY | 为1时,正断开连接 |
ERROR | 为1时,有故障发生 |
STATUS | 故障代码 |
表4 FB66参数说明
OB1编写完成后,SIMATIC 315PN-1的程序块如图20所示:
图20
同理,为SIMATIC 315PN-2站编写程序,与SIMATIC 315PN-1类似,在DB101中定义数据类型为UDT65的变量,在OB1中调用FB65,FB63,FB64,FB66。将硬件组态和程序分别下到两个S7300站中。
在cpu运行的情况下分别监控两个站OB1的状态。首先在两个站的FB65中,将“REQ”置1,使连接建立。然后将SIMATIC 315PN-1 MB100-MB109赋值B#16#12,同时在SIMATIC 315PN-2站中将FB64的EN_R置1,接着在SIMATIC 315PN-1的FB63中,将M0.2设置上升沿信号,此时SIMATIC 315PN-2站的MB200-MB209接收到来自SIMATIC 315PN-1站的数据B#16#12,如图21所示:
图21
同样的操作,将SIMATIC 315PN-2的MB100-MB109赋值B#16#03,SIMATIC 315PN-1的MB200-MB209接收到B#16#03,图22所示。
图22