PROFIBUS-DP是通用的国际标准,符合该标准的第三方设备作DP网络的从站时,需要在STEP 7的HW Config中安装GSD文件,才能在硬件目录窗口看到该从站和对它进行组态。本例程组态DP主站与S7-200的PROFIBUS通信。
1.PROFIBUS-DP从站模块EM 277
DP从站模块EM 277用于将S7-200 CPU连接到DP网络,传输速率为9.6k~12Mbit/s。主站通过它读写S7-200的V存储区,每次可以与EM 277交换1~128个字节的数据。EM 277只能作DP从站,不需要在S7-200一侧对DP通信组态和编程。
2.组态S7Fd300站
用新建项目向导生成一个名为“EM277”的项目(见随书光盘中的同名例程),CPU为CPU 315-2DP。
选中SIMATIC管理器左边窗口的“SIMATIC 300站点”,双击右边窗口中的“硬件”图标,打开硬件组态工具HW Config(见图6-9)。可以看到自动生成的机架和2号槽中的CPU模块。将电源模块插入1号槽,16点DI模块插入4号槽,16点DO模块插入5号槽。DI模块和DO模块分别占用IW0和QW4。
图6-9 组态DP从站
双击“DP”所在的行,单击打开的对话框的“常规”选项卡中的“属性”按钮(见图6-5),在出现的对话框的“参数”选项卡中,单击“新建”按钮,生成一条PROFIBUS-DP网络,采用默认的网络参数和默认的站地址2。多次单击“确定”按钮,返回HW Config。
3.安装EM 277的GSD文件
EM 277作为PROFIBUS-DP从站模块,其有关参数是以GSD文件的形式保存的。在对EM 277组态之前,需要安装它的GSD文件。EM 277的GSD文件siem089d.gsd在随书光盘的文件夹“\Project”中。
执行HW Config中的菜单命令“选项”→“安装GSD文件”,在出现的“安装GSD文件”对话框中(见图6-10),采用最上面的“安装GSD文件”选择框默认的“来自目录”。单击“浏览”按钮,用出现的“浏览文件夹”对话框选中随书光盘中的文件夹“\Project”,单击“确定”按钮,该文件夹的GSD文件“siem089d.gsd”等出现在GSD文件列表框中。选中需要安装的GSD文件,单击“安装”按钮,开始安装。
安装结束后,在HW Config右边的硬件目录窗口的“\PROFIBUS DP\Additional Field Devices\PLC\SIMATIC”文件夹中,可以看到新安装的EM 277(见图6-9)。
4.不能安装GSD的处理方法
安装GSD文件时,如果出现一个对话框,显示“目前尚无法更新。在一个或多个STEP 7应用程序中将至少有一个GSD文件或类型文件正在被引用。”,单击“确定”按钮,不能安装GSD文件。
(www.xing528.com)
图6-10 安装GSD文件
这是因为打开该项目时,有DP从站的GSD文件被引用。必须关闭所有包含DP从站的项目,只打开没有DP从站的项目,才能安装GSD文件。
5.组态EM 277从站
安装GSD文件后,将HW Config右侧窗口的“EM 277 PROFIBUS-DP”(见图6-9)拖放到左边窗口的PROFIBUS-DP网络上。用鼠标选中生成的EM 277从站,打开右边窗口的设备列表中的“\EM 277 PROFIBUS-DP”子文件夹,根据实际系统的需要选择传送的通信字节数。例程“EM277”选择的是8字节输入/8字节输出方式,将图6-9中的“8 Bytes Out/8 Bytes In”拖放到下面窗口的表格中的1号槽。STEP 7自动分配远程I/O的输入/输出地址,因为主机架占用了IW0和QW4,自动分配给EM 277模块的输入、输出地址分别为IB2~IB9和QB6~QB13。
双击网络上的EM 277从站,打开DP从站属性对话框。单击“常规”选项卡中的“PROFIBUS…”按钮,在打开的接口属性对话框中,设置EM 277的站地址为3。用EM 277上的拨码开关设置的站地址应与STEP 7中设置的站地址相同。
在“分配参数”选项卡中(见图6-11),设置“I/O Offset in the V-memory”(V存储区中的I/O偏移量)为100,即用S7-200的VB100~VB115与S7-300的QB6~QB13和IB2~IB9交换数据。组态结束后,应将组态信息下载到S7-300的CPU模块。
图6-11 DP从站属性对话框
6.S7-200的编程
本例的S7-200通过VB100~VB115与DP主站交换数据。运行时S7-300周期性地将QB6~QB13的数据写入S7-200的VB100~VB107(见图6-12);通过IB2~IB9周期性地读取S7-200的VB108~VB115中的数据。
图6-12 数据交换示意图
在S7-200的程序中,只需将待发送的数据传送到组态时指定的V存储区,或者在组态时指定的V存储区中读取接收的数据就可以了。
例如要把S7-200的MB3的值传送给S7-300的MB10,应在S7-200的程序中,用MOVB指令将MB3传送到VB108~VB115中的某个字节,例如VB108。通过通信,VB108的值被S7-300的IB2读取,在S7-300的程序中将IB2的值传送给MB10。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。