目录
1、前序
从机给主机发送数据分为两种情况。第一种是从机设备硬件不同需要单独开发从机PLC程序,那么需要单独配置不同的变量发送给主机。第二种方式是所有的从机设备硬件相同、程序工程也相同,此时只需要将第一套开发好的从机程序复制给多个从机即可(程序工程的IO中Device1、Device2、Device3、Device4等设需要选择各自PLC的网卡)。不论哪种方式,在主机中都需要对每个从机设备发送过来的数据进行Subscriber配置。
本节介绍第一种方式,两个从机中不同程序工程配置,给主机发送数据。
2、配置从机1给主机发送数据
从机给主机发送方法和主机给从机发送方法差不多,需要注意的是从机只能给主机发送,因此需要设置主机AMS NetID地址。
还是以从机1工程举例。
2.1 创建从机1的结构体
将从机设备需要发送给主机的变量创建在结构体SlaveState中(结构体中BOO型变量最好是8的整数倍,其它数据类型变量数量为偶数个)
TYPE SlaveState :
STRUCT
bState1: BOOL;
bState2: BOOL;
bState3: BOOL;
bState4: BOOL;
bState5: BOOL;
bState6: BOOL;
bState7: BOOL;
bState8: BOOL;
nData1: INT;
nData2: INT;
nData3: INT;
nData4: INT;
fData1: LREAL;
fData2: LREAL;
fData3: LREAL;
fData4: LREAL;
END_STRUCT
END_TYPE
然后“convert to Global Data Type”
2.2创建从机1结构体的全局变量
_SlaveState AT%Q*: SlaveState; //从机输出结构体变量
PLC程序工程重新编译生成。
2.3 添加从机1的Publisher
在Device1中添加新项,选择Publish生成Box2。然后在Box2中添加Pub-Var1
设置Publish发送的指定控制器AMS NetID地址
2.4 从机1变量关联
关联从机Pub-Var1和结构体全局变量_SlaveState。
激活从机工程。
2.5 主机中配置接收从机1的Subscriber
在Device2 中添加新项,选择Subscriber
在Subscribe中添加新项,选择从机1控制器的Pub-Var1
在全局变量中定义从机1的 结构体全局变量_SlaveState1
_SlaveState1 AT%I*: SlaveState; //从机1输出结构体变量
重新编译生成主机PLC程序工程,然后IO变量关联
激活主机PLC工程程序
监视主机和从机1
同理,配置从机2给主机发送
3 配置从机2给主机发送数据
方法同从机1配置方式相同,为了方便区分从机设备,从机2结构体名定义为SlaveState2,结构体中变量直接从从机1中复制(为了方便直接复制从机1结构体变量,实际中可以定义不一样的变量)。
3.1创建从机2结构体
将从机设备需要发送给主机的变量创建在结构体SlaveState2中
TYPE Slave2State :
STRUCT
bState1 : BOOL;
bState2 : BOOL;
bState3 : BOOL;
bState4 : BOOL;
bState5 : BOOL;
bState6 : BOOL;
bState7 : BOOL;
bState8 : BOOL;
nData1 : INT;
nData2 : INT;
nData3 : INT;
nData4 : INT;
fData1 : LREAL;
fData2 : LREAL;
fData3 : LREAL;
fData4 : LREAL;
END_STRUCT
END_TYPE
然后“convert to Global Data Type”
3.2 添加Slave2State全局变量
添加Slave2State全局变量,并且重新编译生成从机2得PLC程序工程
_Slave2State AT%Q*: Slave2State; //从机2输出结构体变量
3.3 配置从机2发送给主机的的Publisher
Device1中添加新项选择Publish,然后添加变量
设置publish 主机的AMS NetID,仅针对主机发送
3.4 关联从机2的Publisher变量
激活从机2工程。
3.5 主机中配置接收从机1的Subscriber
在Device2 中添加新项,选择Subscriber
在Subscribe中添加新项,选择从机2控制器的Pub-Var1
在全局变量中定义从机2的 结构体全局变量_SlaveState2,并且重新编译和生成主机PLC程序工程
_SlaveState2 AT%I*: Slave2State; //从机2输出结构体变量
IO变量关联
激活主机PLC工程程序
4 测试
4.1 主机发送给从机
主机写入后
4.2 从机分别给主机发送
从机1给主机发送
从机2给主机发送