在查的资料里面看到对FC02、FC04代码要写上DB块的编号,那么意思就是只能对所写的对应的DB块里面的数据进行读和写操作了吗,不可以对多个DB块的数据进行读和写操作吗,如果可以,那么地址映射又该怎样子去算呢,同时还有FC03,06,16设置写操作的限制,这里又是起到了什么作用,与FC04所填的DB块编号有关联吗。
最佳答案
1、在查的资料里面看到对FC02、FC04代码要写上DB块的编号,那么意思就是只能对所写的对应的DB块里面的数据进行读和写操作了吗,不可以对多个DB块的数据进行读和写操作吗?
对的,不可以列改。因为这是在硬件组态中完成的,并且要编译下载到CPU。
CP341作从站的Modbus RTU通讯(STEP7)
http://www.ad.siemens.com.cn/productportal/Prods/published/Comm/Comm_15.6/Comm_15.6.html
CP341作从站的Modbus RTU通讯(TIA)
http://www.ad.siemens.com.cn/productportal/Prods/published/Comm/Comm_15.7/Comm_15.7.html
2、对于写功能代码 05、06、15 和 16,可以 禁用或限制访问相关SIMATIC 存储区。
可以使用参数分配工具在MODBUS 主站系统上指定启用写 访问的区域。
如果主站试图访问该启用区域之外的SIMATIC 存储区,则访问会被拒绝,同时输出一条错误消息帧(例外)。
3、FC 04
面向寄存器的功能代码 04 可以对SIMATIC 存储区数据块进行只读访问。
这种访问的工作方式和功能代码03、06 和16 相同。
功能代码 04 具有自己的基本DB 号,可以使用参数分配工具进行自由参数分配。 这样可以选择第二个包含128 个BD 的独立 区域。
然而,对这些DB 只能进行只读访问;不能对其写入。
如截图,可参考:
S7 串行通信模板 Modbus RTU 从站可装载驱动的操作说明
https://support.industry.siemens.com/cs/document/1218007
图片说明:
提问者对于答案的评价:
如果想要实现对多个DB块进行读写访问的话那就可以利用多重背景数据块来实现了是吧?因为是初学者,所以还想问一下有没有其他需要注意的地方,非常感谢!
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc351958.html