要实现S7-300与S7-200进行PROFIBUSDP通讯,需通过使用EM277模块将S7-200CPU作为DP从站连接到网络中,从而实现S7-300与S7-200的通讯。
支持的波特率范围:9600----12M
订货号:6ES7-277-0AA22-0XA0
1、首先安装EM277的GSD文件
2、在路径PROFIBUSDP---AdditionalFieldDevices---plc---SIMATIC---EM277将其拖入到组态的DP线上
3、点开“EM277profibusdp”下面是各种不同种类通讯数据分类如“2BYTEOUT/2BYTEIN”2个字节的输入2个字节的输出
对应的两个字节为IB0-IB1和QB0-QB1
可以双击选项栏设置
4、设置主站和从站的DP通讯地址
主站站号为2,从站站号为4
EM277通过旋转模块左上方的拨码开关来设置DP从站地址,如从站地址为“4”的话将X10档位中的箭头旋转到“0”X1档位中的箭头旋转到“4”;若从站地址为“25”则将X10档位中的箭头旋转到“2”X1档位中的箭头旋转到“5”
通讯正常的话EM277模块上的DXMODE绿灯是亮的并且主站CPU指示灯为正常;如果通讯有误的话,DXMODE灯不亮,且主站CPU指示灯报故障,而且CPU不能启动。
5、双击EM277----分配参数----I/OoffsetintheV-memory
给从站S7-200设置对应的VB存储区数值填多少就对应的多少
如图设置的是VB1000为映射起始地址
表示:QB0-QB1------VB1000-VB1001
IB0-IB1------VB1002-VB1003
6、给DIDO模块分配地址,因为上一步通讯已占用了IB0IB1QB0QB1这些地址,所以模块中的起始地址只能从IB2QB2开始
7、编写程序
S7-300主站程序
S7-200从站程序
数据流向:
MB10(S7-300)------QB0(S7-300)-------(DP通讯)------VB1000(S7-200)----QB0(S7-200,实际输出)
VB0(S7-200)-------VB1002(S7-200)--------(DP通讯)--------IB0(S7-300)------QB2(S7-300实际输出)
测试1:
STEP7中MB10写入“170”然后通过MOVE指令传送到了QB0(S7-300)中再通过DP通讯传送给S7-200
监控Micro/WINVB1000将数据“170”MOVE到了QB0(S7-200)中
PLC实际照片:170(10#)==10101010(2#)
测试2:
在Micro/WIN中VB1写入“255”并通过MOVE指令传送给VB1003然后通过DP通讯传送给IB1(S7-300)
监控STEP7IB1值为“255”然后通过MOVE指令传送到QB3(S7-300)实际输出
PLC实际照片
附加:模拟量测试
只需更改以下操作:
1、在组态时选择一个字类型的传输方式如1WordOut/1WordIn一个字类型输出一个字类型输入
然后设置DP从站的输出、输入地址如:输出PQW264输入PIW272
2、映射地址还是V存储区1000为起始地址
PQW264------VW1000
PIW272------VW10002
3、编写程序
S7-300
S7-200
数据传输
MW10(S7-300)---PQW264(S7-300)---(DP通讯)---VW1000(S7-200)---VW0(S7-200)
VW2(S7-200)---VW1002(S7-200)---(DP通讯)---PIW272(S7-300)---MW12(S7-300)
5、测试1
STEP7中向MW10写入“13824”
监控Micro/WINVW1000值变为了“13824”
测试2
Micro/WIN写入“27648”到VW2并MOVE到VW1002中
监控STEP7PIW272的值变为了“27648”