S7-200和S7-300进行PROFIBUS通信
S7-300与S7-200通过EM277进行 PROFIBUS DP通讯,需要在STEP7中进行S7-300站组态,在S7-200系统中不需要对通讯进行组态和编程,只需要将要进行通讯的数据整理存放在V 存储区,并且S7-300组态EM277从站时设置正确的地址即可。
插入一个S7-300的站:
图8 S7-300组态
选中STEP7的硬件组态窗口中的菜单 Option® Install new GSD(GSD 文件下载:113652)
导入SIEM089D.GSD文件,安装EM277从站配置文件,如下图:
图9 安装GSD
在SIMATIC文件夹中有EM277的GSD文件:
图10 安装GSD
导入GSD文件后,在右侧的设备选择列表中找到EM277从站,PROFIBUS DP®Additional Field Devices®PLC®SIMATIC®EM277,并且根据通讯字节数,选择一种配置,本例选择8字节入/8字节出的方式,如下图:
图11 通信区域组态
根据EM277上的拨位开关设定以上EM277从站的站地址。
图12组态DP通信地址
组态完系统的硬件配置后,将编译下载到S7-300的PLC当中。S7-300的硬件下载完成后,将EM277的拨位开关拨到与以上硬件组 态的设定值一致,在S7-200中编写程序将进行交换的数据存放在VB0-VB15,对应S7-300的PQB0-PQB7和PIB0-PIB7,打开 STEP7中的变量表和STEP7 MicroWin32的状态表进行监控,它们的数据交换结果如下图:
图13 通信数据监控
图14 通信数据监控
注意:VB0-VB7是S7-300写到S7-200的数据,VB8-VB15是S7-300从S7-200读取的值。EM277上拨位开 关的位置一定要和S7-300中组态的地址值一致。如果使用的S7-200通信区域不从VB0开始,则需要设置地址偏移,在S7-300硬件组态中双击 EM277,修改数值0为实际使用的数值即可,如下图所示:
图15 地址区域偏移设置
数据类型分类比较多,在西门子PLC中,数据类型分为基本的数据类型、复杂的数据类型、参数数据类型、系统数据类以及硬件数据类型等,但对于S7-200系列的PLC来说,只支持基本的数据类型,那这里就先给大家介绍下基本的数据类型。
1 MOV_B指令:移动字(MOVE)指令将输入字节(IN)移至输出字节(OUT),不改变原来的数值
EN:使能端,当EN = 1时,MOV_B执行。
ENO:输出的使能。
IN:数据来源:BYTE类型
OUT:输出,目的操作数。BYTE类型
例:IN = 2#11110000
OUT = QB0,QB0时Q0.0~Q0.7的简称
例:IN = 16#22
OUT = VB100,将十六进制22传送到VB100开始的字节
2 MOV_W传送指令
2.1 MOV_W指令。移动字(MOVE)指令将输入字(IN)移至输出字(OUT),不改变原来的数值
2.2 和MOV_B的意思一样。只不过输入输出的类型不一样,一个是B,一个是W
2.3 例1:IN = 20,因为十进制20转换为2进制就是0000 0000 0001 0100,16位,2个字节,所以用MOOV_W字传送指令。
所以OUT = VW,
2.4 注意,在使用W字时,应彩英偶数地址序号,
因为,地址序号是按字节排序的,所以VW100是由VB100,VB101,组成。如果直接使用VW100,VW101,就会出现重叠,VW100 = VB100+VB101,VW101 = VB101+VB102,所以会出现错误。
3 MOV_DW传送指令。
3.1 双字传送:移动字节(MOVE)指令将输入双字(IN)移至输出双字(OUT),不改变原来的数值
3.2 IN = 输入双字2#0001000100010001
3.3 OUT = 输出双字VD100
4 MOV_R传送指令
4.1 实数(浮点数)传送指令。(MOVE)指令将输入浮点数(IN)移至输出浮点数(OUT),不改变原来的数值
4.2 IN = 浮点数,数据占用4个字节,总共32个位被分成3部分。
4.3 符号位:高位(第31位),正数为0,负数为1
4.4 指数位:第23-30位,存储科学计数法中的指数数据,
4.5 尾数部分:第0位到22位,表示浮点数的尾数部分
4.6 IN = 8.0(浮点数)
4.7 OUT = VD100(4个字节)