技术论坛

 CPU315 PN/DP的Modbus TCP通讯

返回主题列表
作者 主题
volcanol
奇侠

经验值:5189
发帖数:851
精华帖:12
楼主    2020-06-03 19:01:27
主题:CPU315 PN/DP的Modbus TCP通讯

论坛里面的资料连接我都看过了, 还是没有找到解决方法,所以来求助。


一、硬件

      CPU315 PN/DP  固件版本V3.2.6

       一个第三方的Modbus TCP产品,可以配置为客户端也可以配置为服务器端。

       两个Modbus RTU的电能表


二、软件

      Step7_Profissional_2017 

       Modbus_TCP_PN 软件包  带FB900  MODBUSPN

                                                   FB901   MOD_CLI

                                                   FB903    MOD_SERV

        另外带两个数据块:  DB2 modbus TCP 配置的数据库

                                         DB3 授权块


三、程序

    因为第一次用这个Modbus鬼玩意进行通讯,所以用了示例程序, 


    拓扑逻辑是这样的:

         S7-300 做Modbus Client 就是主站,  中间通过三方的网关, 三方网关的作用是把 Modbus TCP转换为Modbus RTU。


         300 PLC  ------》  网关 --------》 Modubus RTU的电能表

        


      我现在利用示例程序,已经可以通过功能码 3 读取电能表的数据,现在我想通过S7-300的Modbus 通讯通过功能码5 往 电能表里面写数据, 但是在西门子的程序里面修改就是不行。300 PLC侧一修改为功能码5 就报错。



这个是配置数据块里面的设置, 我用的data_type_1 和 data_type_4


只要我设置了 功能码 5 ,则300 这边就报错。通讯也不能建立。


然后就算我在将功能码设置回到 3 也会如上图一样报错,通讯不能建立。



功能码 5 对应的数据块是 DB17 我建立了 DB17, 无论我把DB17 里面的数据类型定义为 bool型还是 word型都不可以。

如果我把功能码 5 去除,然后通讯马上就可以,而且可以读取电能表的数据。


还有通过网关我已经用 Modbus Poll软件进行过测试,可以轮询的设置两个电能表的线圈,而且可以听到里面的继电器动作的声音, 因此我线遇到的困难是 怎么样在300 这一侧配置号,可以操作线圈。





获取资料关注:https://www.cnblogs.com/volcanol/
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。