s7-1200 增加 cm1242-5 通信模块后可以做 profibus dp 从站。一般情况下,可以通过tia portal 组态该模块的地址,当在软件中修改组态profibus地址后,需要下载硬件配置或者完整下载整个项目,修改的地址才可以生效。
对于一些特殊应用场景,profibus dp从站的站地址无法预先设置成固定的地址值,需要在适当的时候根据需要,在不重新下载硬件配置/项目的情况下,通过程序修改dp地址。为此,本文介绍通过编程调用 wrrec 指令修改 cm1242-5 的 profibus 地址。
注意:
cm1242-5模块固件版本在v1.0.5及更高,支持数据记录 0x2001(8193),当使用wrrec指令写入数据记录之后,从站会以该地址重启。8193数据记录结构如表1.所示
表1.8193数据记录结构
数据记录
结构 字节1 字节2 字节3 字节4
版本(高字节) 版本(低字节) opcode
=0 不更改;=1 更改 来自opcod的数据
新地址
分配示例 01h 00h 01h 03h
实现功能 版本为v1.0 需要更改dp地址 新地址为3
实验思路
cpu1215+cm1243-5模块作为profibus dp主站,站名称为“dp_master”,cpu1214+cm1242-5作为profibus dp从站,站名称为“dp_slave”,双方进行profibus dp主从通信。
在dp_slave站点中,在cm1242-5模块属性中设置的从站地址为30。为了更直观的验证通过程序修改地址生效,在博途中导入cm1242-5的gsd文件,在dp_master站点中,在cm1243-5主站模块下方组态2个cm1242-5(gsd)。一个从站地址配置为3,名称修改为address_3;另外一个从站地址配置为5,名称修改为address_5。
在dp_slave站点中编程,通过调用wrrec指令分别修改cm1242-5模块的从站地址为3和5,在网络视图中在线监控主站模块是否与相应的从站模块通信成功。网络配置概况如图1.所示。
图1.网络配置概况
硬件和软件需求
所需硬件及角色分配如表2.所示:
表2.硬件与版本
角色 profibus dp主站 profibus dp从站
硬件 6es7 215-1ag40-0xb0 6gk7 243-5dx30-0xe0 6es7 214-1ag40-0xb0 6gk7 242-5dx30-0xe0
固件 v4.4 v1.3 v4.4 v1.0.6
软件:step 7 professional v16
cm1242-5 模块组态
1. 打开博途软件,创建一个新项目,添加新设备中,添加 cpu1214(6es7 214-1ag40-0xb0) 模块,固件版本为v4.4。
2. 在cpu1214的设备视图中添加cm1242-5模块,设置从站地址为30,如图2.所示。
图2.添加cm1242-5并设置dp地址
3. 设置cm1242-5的操作模式和传输区域,如图3.所示。
图3.设置操作模式和传输区域
cpu1215+cm1243-5组态
1.与cpu1214同一个项目中,添加cpu1215(6es7 215-1ag40-0xb0),固件版本为v4.4,同时添加cm1243-5模块。
2.设置cm1243-5模块的dp地址,如图4所示。
图4.cm1243-5模块的地址
3.添加cm1242-5的gsd文件
cm1242-5 gsd文件下载链接及添加gsd文件的方法,请点击:添加和删除gsd文件
cm1242-5的固件版本如果低于v1.0.5,需要对cm1242-5进行固件更新,cm1242-5固件下载及更新方法,请点击:cm1242-5固件下载 和 固件更新方法
4.从硬件目录中将添加好的cm1242-5的gsd文件拖拽至网络视图中组态,分配profibus dp主站给cm1242-5,同时修改从站名称为address_3,如图5.所示。
图5.分配主站及修改站名称
5.设置从站地址及传输区,如图6.所示。
注意:传输区的组态与cm1242-5模块中组态(参见图3.)的传输区相对应(图3.中为输出,1个字节;此处需要组态为输入,1个字节)。
图6.对gsd文件组态从站地址及传输区
6.从硬件目录中添加第二个cm1242-5(gsd)组态,从站地址设置为5,站名称设置为address_5,添加传输区也是1 byte input,操作步骤同重复上述4-6。
cpu1214+cm1242-5 编程
1.在cpu1214+cm1242-5(站点名称为dp_slave)中添加全局db数据块并定义变量,如图7.所示。
将数据块中record的数组的起始值设置为16#01,16#00,16#01,16#03,此4个字节的含义参见表1.所示。
图7.添加数据块定义变量
2.在ob1中调用wrrec指令,指令填写如图8.所示。
注意:wrrec指令是异步通信,req指令建议使用上升沿触发。如果使用电平信号触发,会不断的向模块写数据记录。如果短时间内多次写入数据记录,则会使用最后写入的地址。
图8.调用wrrec指令
3.捕捉指令完成位及错误代码,如图9.所示。
图9.捕捉错误位和完成位
4.添加监控图表,在其中添加2个变量,分别为change_address_db.data.new_address 和 change_address_db.data.req。将change_address_db.data.new_address 修改从站地址为3,然后将change_address_db.data.req修改为1,触发wrrec指令。如图10所示。
图10.修改从站地址为3触发wrrec指令
5.切换至网络视图,观察到cpu1215和站地址为3的gsd文件组态的站点通信成功。如图11.所示。
注意:由于cpu1215下方挂了2个cm1242-5 gsd文件,但是实际只有一个cm1242-5模块,所以同一时刻,只有一个从站通信成功,cpu1215有报错现象属于正常现象。
图11.修改地址后观察结果1
6.将change_address_db.data.new_address 修改从站地址为5,然后将change_address_db.data.req修改为1,触发wrrec指令,如图12.所示。
图12.修改从站地址为5触发wrrec指令
7.网络视图中,观察到cpu1215和站地址为5的gsd文件组态的站点通信成功。如图13.所示。
图13.修改地址后观察结果2
注意:
使用这种方法后,cpu断电重启会恢复组态地址(30),所以如果想要保持性存储dp 从站地址,应将其保存在 cpu 的设置有保持性的 db块中(参见图7.数据块中的变量设置有保持性,断电从新上电后数据保持断电之前的值不变)
在 ob100 中编程调用wrrec指令,将req直接填写为true,将数据记录写入 cm1242-5模块中。如图14.所示。
注意:因为wrrec指令是异步指令,需要执行多个周期,而ob100只能执行一次,所以在程序中加入跳转指令,即当指令仍在执行时则不跳出ob100继续执行wrrec。
图14.ob100中触发wrrec指令
物通博联邀您相约第二十三届中国国际投资贸易洽谈会
圣邦副总谭磊应邀至北大带来主题为“创新服务于应用”的报告
移动应用彻底改变了我们与自由软件的关系
电动法兰式蝶阀工作中的动态性不稳定的因素分析
阿里云发布vSphere虚拟机备份服务 ,网络带宽有限条件下依然能有效保护数据
通过WRREC指令修改CM1242-5的DP地址的步骤
诺基亚X7亮相:搭载了蔡司镜头,骁龙710
举国刷屏?华为p10/p10plus国行版今日发布:华为p10/p10lus的七个细节,看完再决定买不买?
变压器并列的条件及不符合并列条件变压器并列的后果
显示材料厂商润玛股份创业板IPO终止
随着近年来房地产市场出现疲态 空调市场也受到了较大影响
手机芯片的主要作用是什么
各大国际车厂积极亮相CES展示汽车科技
制作您自己的ESC直流无刷电机驱动器
中国联通5G国际业务全新启航
坚果pro2和OPPO R11s哪个好?最全面的手机测评对比分析
魅族16评测 顺风不浪逆风不怂
输入设备和输出设备的区别
怎么选择电感电流纹波
可直接打印含力学性能功能性产品的桌面级光固化3D打印机