冗余系统拥有两条dp总线,因此如果需要将一个单dp接口的从站连接到冗余系统下,需要借助于ylink接口模块。ylink可以在两条总线中实现自动的切换,无需编程。本文件将主要介绍s7-300从站通过扩展的cp342-5 dp接口连接在ylink后的组态步骤。
1. 下载并安装gsd文件
通常情况下在step 7的硬件组态中无法把在profibus-dp 目录下的300系列模块连接至ylink的dp master段。s7-300 作为从站连接至ylink的唯一办法是通过gsd文件。首先,通过如下链接下载相应的cpu的gsd文件。
注意:不同的cp342-5,其gsd文件有不同的版本,请选择合适的序列号。有时候下载后的gsd文件的文件名的格式为:siem80ee.gse.txt 。请删除.txt 后缀。
得到gsd文件以后,应把它导入step 7的硬件组态目录中。见pic1所示。
pic1. 导入新的gsd文件
2. 系统的硬件组态
2.1 s7 300组态
在项目中加入simatic 300 station,进行相应组态插入相应的300cpu,其硬件组态见pic2。
pic2. cp342-5的硬件组态
注意:记住cp342-5的i/q映射区地址,后面编程需用到。
双击cp342-5,设置为dp slave模式,见pic3所示。
pic3.cp342-5的组态
为了使cp342-5能够与h系统进行通讯,应在cp342-5内组态相应的与h系统的通讯区域。与链接集成dp组态不同的是,cp342-5是通过编程来实现的,硬件组态中毋需配置接口。
2.2 冗余系统组态
h系统中插入im157时,请选择“interface module for profibus-dp”选项,如下图pic4所示。
pic4. im157 总线系统选择
如下图pic5所示,加入cp342-5从站站点。
pic5. 加入cp342-5从站
类似于为普通的et200m从站组态插槽,为相应的cp342-5站点组态接口数据,将如下图pic6中的模块拖拽到相应的cp342-5站点的插槽中。最终配置如下图pic7所示。
pic6. 作为dp-slave 的cp342-5中可插入的模块
pic7. h系统中cp342-5中的模块
3. s7-300和冗余系统下的编程
3.1 冗余系统下的编程
实际进行通讯时,h系统下毋需编写任何程序,通讯数据通过上面配置的输入/输出接口区进行自动的读写。控制程序如果需要读取这些通讯数据,只需要通过pic8中配置的相应地址直接读取即可。
3.2 cp342-5下的编程
这里需要注意一个概念:cp342-5的dp i/o区是虚拟i/o区(pic2所示),它与300 cpu的过程映像区是不同的。用户无法从hwconfig 中直接访问342-5的i/o区,s7 300中如果不编写任何程序,系统不能正常工作。通讯时y-link和cp342-5的sf及bf指示灯会闪烁。解决此问题需要在300cpu中调用相应的功能块。fc1“dp_send”和fc2“dp_recv”分别向cp342-5发送和接受数据,如下pic8所示。
pic8. 地址对应图
因此与342-5的通讯需要用户自己编程完成,pic9是在cpu315-2dp的ob1中的示例。这两个功能块的参数基本相同,第一个参数:cpladdr须填写cp342-5的起始地制,可以参见pic2。示例代码中使用的是十六进制的地址。第二个参数是接受或发送的数据的地址。这一参数有两部分组成:前一部分是起始地址,后一部分是偏移量。注意,偏移量的选取应该与s7-400中cp342-5的地址长度相对应。s7-400中cp342-5的i区表示来自s7-300系统的数据,而q区表示s7-400发送至s7-300的数据。
pic9. s7 300中编程示例
注1:在调用fc1/fc2时,cpladdr 后面的地址必须是硬件组态中342-5的起始地址,当然fc1用i起始地址,fc2用q起始地址。请合理设置fc1::recv和fc2::send的参数以保证覆盖需要通讯的区域。同时,在硬件组态时,请尽量连续使用地址。
注2:通过ylink和s7 300等从站通讯, ylink后组态的所有从站通讯字节总和不能超过244 byte input/244 byte output。