技术论坛

SMART LINE 系列触摸屏通过MODBUS 协议与液位仪通讯的使用

作者 主题
侠客

经验值: 743
发帖数: 107
精华帖: 1
主题:【探讨】SMART LINE 系列触摸屏通过MODBUS 协议与液位仪通讯的使用


只看楼主 楼主 2019-03-14 13:03:57

SMART LINE 系列触摸屏通过MODBUS 协议使用(2019.3.14-ayang)

1.预实现功能:通过触摸屏smart 700IE V3 的485通讯口与 1台液位仪进行通讯读取液位仪的数据信息--液位、界面、平均温度等。

 

2.液位仪的通讯协议:地址0x81(129),功能码(读寄存器数据) 04,读取寄存器数量--单位为字(2个字节),寄存器地址高位:01H-0BH,对应于探棒1-12号,

特率 9600、帧格式为:起始位1,数据位8,停止位1,共10位,无校验(N)

 

3.触摸屏smart 700IE V3 在组态软件WinCC flexible smart 中可以连接设置为:

“通信驱动程序”(Communication drivers)为Modicon Modbus RTU,

“类型”(Type) 选择“RS 485”,“波特率”(Baud rate) 9600,

“数据位”(Data bits) 只能选择“8”,

“奇偶校验”(Parity) 下,选择“无”(None),

“停止位”(Stop bits) 选择 1,

“组帧”(Framing) 只能设置为 RTU(标准),

  “从站地址”(Slave address) 设置为 129。

    “CPU 类型”(CPU type) 仅支持CPU 984(CPU 984A、984B 和 984X 除外)、CPU 984-785、CPU TSX Quantum、Modbus Delta、Modbus M218/M238/M258。( 尚不明确这些有什么详细区别)

 

 

4.HMI-变量设置问题

 


问题: 软件中好像只有--3x InputRegister 输入寄存器 是 功能码04 。

          读取寄存器的位数 没有可以设置的地方。

          读取的数据实际为浮点数,而软件中此寄存器下--无浮点数可选。

 

5. 通过串口调试工具监视到的数据:

81 04 01 00 00 01 2F F6  //液面  0x0100== 256 (软件中 设定256+1== 30257)

81 04 01 02 00 01 8E 36 //界面  0x0102== 258 (设定258+1== 30259)

81 04 02 00 00 B8 EE    //**平均温度  0x0104== 260 (设定260+1== 30261)//这个是不正确数据

 

6.实际读取液位仪的 罐1-罐12 的液位、界面、平均温度所需发送的数据为:

81 04 01 00 00 06 6E 34 //  罐1的液位、界面、平均温度

81 04 02 00 00 06 6E 70//  罐2的液位、界面、平均温度

81 04 03 00 00 06 6F 8C 

81 04 04 00 00 06 6E F8  

81 04 05 00 00 06 6F 04 

81 04 06 00 00 06 6F 40 

81 04 07 00 00 06 6E BC  

81 04 08 00 00 06 6D A8 

81 04 09 00 00 06 6C 54 

81 04 0A 00 00 06 6C 10

81 04 0B 00 00 06 6D EC 

81 04 0C 00 00 06 6C 98


HMI-液位仪通讯2019.3.14.pdf



 
以下网友喜欢您的帖子:

  
重要声明:

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

帖子链接:https://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1548782&b_id=64&s_id=0&num=3

侠客

经验值: 743
发帖数: 107
精华帖: 1
回复:SMART LINE 系列触摸屏通过MODBUS 协议与液位仪通讯的使用


只看楼主 楼主 1楼 2019-03-14 13:17:01

实际需求( WinCC flexible smart 软件在做modbus通讯时):

  1.  可以 使用 功能码 04 ,且可以选择 浮点数 ;

  2. 可以设置读取寄存器的位数 ;

  3. 可以设置返回数据的高低字节交换方式;

  4. 软件组态完成后,最好可以在软件中运行查看--通讯数据结果(在线监视仿真)


能满足前3条就可以

如果现在软件版本暂时无法满足,

期待西门子的工程师早日完善软件功能。


 
以下网友喜欢您的帖子:

  
侠客

经验值: 743
发帖数: 107
精华帖: 1
回复:SMART LINE 系列触摸屏通过MODBUS 协议与液位仪通讯的使用


只看楼主 楼主 3楼 2019-03-15 09:10:16
以下是引用Zaxife在2019-03-14 14:10:54的发言 >2楼:呃,看来你接触过上位机通讯太少太少了。 1、触摸屏绝不可能每个周期全部去读取你变量表中建立的所有变量的,那样不仅意义不大反而导致画面数据更新太慢。好比你变量表建立了几万个变量,然后每个画面中只用了几十个变量,如果一直读取所有变量,那么画面更新数据的时间间隔就有可能超过几十秒以上!!!但是,人家做触摸屏的不会这么蠢,人家都是根据画面显示哪些变量就只读写哪些通讯变量,这样可以直接2秒内更新所有数据,用户的体验就是数据是实时更新的。所以,人家触摸屏都是优化通讯的,比如限制一帧数据的长度、比如相邻的几个寄存器就作为一帧读取而不是一个一个读取、比如寄存器地址间隔超过5个以上如果还是按一帧读取帧时间就比单个读取更花时间所以直接分开两帧。 2、要读取浮点数?数据格式是在建立变量时就定义好的,你可以选Int(整数)格式、可以选Float(浮点数)格式,然后通讯时自动根据变量的数据格式读取对应的长度,而不是你想象的不管什么数据都是按寄存器读取!然后这个屏说了,不支持输入寄存器按浮点数格式读取!这是西门子的锅。 3、Modbus RTU 协议规定了,RTU是8位数据位,ASCII是7位数据位。你都选用RTU还想选7位数据位,你这不是没事找抽型?就好比你选了奥迪轿车非得选宝马的发动机,你这不是耍流氓么。 4、至于寄存器地址与通讯变量地址对应问题,这个是西门子的锅,西门子不可能改的啊。至于数据高低字节交换问题,这个也是西门子的锅。人家西门子自会跟你说,你下位机交换字节顺序就是了....你下位机做好地址偏移就好了,我的屏是跟我的PLC集成的,不是跟第三方集成的。所以,你没得选。 5、讲真、这个屏除跟国内的知名品牌比的话完全就不是一个层次的东西,弱到不行不行的。
  1. 你答非所问;

  2. 你根本就没有用过 WinCC flexible smart 软件配置过 这个 触摸屏smart 700IE V3 ,我要求的是功能码04 ,你给建一个变量类型是浮点数,且功能码为 04的变量表,分享一下;

  3. 我们讨论的实现方法,首先是先满足功能再说,我就建一个变量,能够读出来也行,至于每个周期读多少变量,不是本贴考虑的范围(看清楚我只建了三个);

  4. 如果,没有实际用过,也不打算解决这种技术问题,建议你可以只看,不回答。


 
以下网友喜欢您的帖子:

  
侠客

经验值: 743
发帖数: 107
精华帖: 1
回复:SMART LINE 系列触摸屏通过MODBUS 协议与液位仪通讯的使用


只看楼主 楼主 4楼 2020-02-21 14:43:26

类似的组态软件(以及一些国产触摸屏)里基本都  可以设置 字节顺序,

下面这是 组态王的文档里的截图


希望软件的改进版本也可以支持这种字节交换的设置 



 
以下网友喜欢您的帖子:

  
  • 上一页
  • 1
  • 下一页
收起
SMART LINE 系列触摸屏通过MODBUS 协议与液位仪通讯的使用
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。