rs485水表与200通讯?

以下为水表格式,用自由口?
 水表类型――19H
 厂商代码――33 78H
 表 地 址――由5个字节组成,每个字节为2位BCD码格式,低地址在前,高地址在后
 表当前读数-由4个字节组成,每个字节为2位BCD码格式,第1个字节为小数位,后3个字节为整数位,低位在前,高位在后。
 结算日累积流量――由4个字节组成,未使用该功能,数据默认为0。
 实时时间――由7个字节组成,未使用该功能,数据默认为0。
 数据长度――表示从数据标识开始到校验码之前的所有字节数
 校验码―――从帧起始符开始到校验码之前的所有字节进行二进制算术累加,不计超过FFH的溢出值。
 广播地址――广播地址只能应用于点对点的通讯中。
 计量单位――吨,用2CH表示

 
 1、读表数据(例如表地址:12345678,表盘示数:123456)数据格式如下:
 下发给表计数据格式:
 FE  FE 68 19 78   56   34   12   00
 33  78 01 03 1F   90 01 F4 16
 说明:FE FE-引导字符;68-帧起始符;19-表类型;78 56 34 12 00-表地址;33 78-厂商代码;01-读表数据控制码;03-数据长度;1F 90-数据标识;01-序列号;F4-校验码;16-帧结束符。
 表计上传数据格式:
 FE   FE 68 19 78   56  34   12   00
 33   78 81 16 1F   90 01 00   56
 34 12 2C 00   00   00  00 2C 00
 00   00   00  00   00   00 00   00 7B
 16 
 说明:FE FE-引导字符;68-帧起始符;19-表类型;78 56 34 12 00-表地址;33 78-厂商代码;81-读表数据应答控制码;16-数据长度;1F 90 -数据标识;01-序列号;00 56 34 12-表当前读数;2C-单位;00 00 00 00-结算日累积流量;00 00 00 00 00 00 00 -实时时间;00 00-表计状态;7B-校验码;16-结束符。

 2、读表地址(读取表地址为12345678号的表地址)
 下发给表计数据格式:
 FE  FE 68 19 AA  AA  AA  AA   AA
 AA  AA 03 03 0A 81 01 B9 16
 说明:FE FE-引导字符;68-帧起始符;19-表类型;AA AA AA AA AA AA AA:广播地址;03-读表地址控制码;03-数据长度;0A 81-数据标识;01-序列号;B9-校验码;16-结束符。
 表计上传数据格式:
 FE  FE 68 19 78   56   34   12   00
 33  78 01 03 0A   81 01 52 16

 说明:FE FE-引导字符;68-帧起始符;19-表类型;78 56 34 12 00-表地址;33 78-厂商代码;83-读表地址应答控制码;03-数据长度;0A 81 -数据标识;01-序列号;52-校验码;16-结束符。
 3、写表地址(如表计地址为1号,需要改为12345678号)
 出厂后的表计设置了出厂启用地址保护功能,直接对表计设置表地址是不成功的,需要先对表计设置清出厂启用,然后设置表地址,最后设置出厂启用

最佳答案

当然用自由口,有多少表?

 第一步:把地址搞定
 工具就是串口软件,最好是带很多校验的那种串口软件。
 目的是知道每个表的地址,方便编程,如果表上注明有地址,那可以省略这步。

 用默认地址还是改成你喜欢用的地址都无所谓,主要是地址不能有重复的。

 读取表地址和改地址的方法,在规约里已经写的很清楚了,就是用串口软件来读取和改写。

 第二步:对单个水表调试
 工具就是串口软件。
 目的是确认和水表能正确通讯,熟悉读表数据的格式,如果这个工作不能完成,那后面的工作遇到问题时将不好处理。

 方法就是用串口软件按读表数据的格式来调试。

 第三步:编写程序
 1 建议把所有表的请求帧先编写好,放在数据块里,这样直接发送就可以了,免的程序里再计算再校验。
 2 读水表采用轮询的方法,假如有4块水表,那就是问水表1收水表1问水表2收水表2问水表3收水表3问水表4收水表4问水表1收水表1………无限循环下去
 3 先给水表1发送,发送中断里接收水表1,接收完成中断里执行定时中断,定时中断里给水表2发信息,发送中断里接收水表2,接收完成中断里执行定时中断,定时中断里给水表3发信息,依次循环。
 对发送和接收都采用间接寻址的方法,水表再多,只要3个中断即完成。

 第四步:把水表的通讯口和200PLC的通讯口连接起来。

 第五步:下载程序调试

 祝你成功!

提问者对于答案的评价:
谢谢

原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc354171.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2021年7月5日 上午1:47
下一篇 2021年7月5日 上午1:47

相关推荐

  • S7 200的问题

    请问大家S7200 的PLC在点向下的箭头下载的时候选中下载的程序块,是下载的当前的程序块,还是所有的程序块啊,还有如何只下载当前修改程序块呢?还有软件中的程序和PLC中…

    SIMATIC S7-200 2020年10月31日
  • 多台s7-200plc通过modbus与上位通讯

    我现在又四台s7-200的plc,想把这四台plc通过modbus通讯连接到一台上位机上,而且上位机只有一个232的com口。另外有四个电量模块需要分别接到四个plc上,然后能在上…

    SIMATIC S7-200 2020年11月5日
  • EM227与ECMS系统通信

    客户要求CUP226 CN有预留两个通信口与ECMS系统通信,由于需要一个通信口调试时做编程,我加多了一个EM227模块,我想请问一下,通过EM227的通信口可以读取CU…

    SIMATIC S7-200 2020年11月5日
  • 224XP模拟量接线问题

    我有两个0-10V的模拟量信号想接到224XP的主机上带的两个模拟量输入点上,但我看样本的接线图上标的信号源(就是画着圆圈标着正负的那个)的正负两个是相反的,但模块上标的又是A+和…

    SIMATIC S7-200 2020年11月1日
  • 200plc问题2

    请问,西门子200PLC程序里面,我只看到了XMT指令,它去读变频器电流,但是我没有看到RCV指令,问题来了,没有RCV指令,怎么接受到变频器给PLC的电流啊 问题补充:程序确实找…

    SIMATIC S7-200 2021年7月5日
  • S7-200如何用TC35模块进行发短信到手机

    如题,我是想做设备有故障报警时,PLC发短信到手机上,来通知,有做过的朋友指点一下,谢谢 最佳答案 连接这个http://www.ad.siemens.com.cn/downloa…

    SIMATIC S7-200 2020年10月31日
  • PLC主站,单片机从站,自由口通信

    我想请问一下,我现在想要S7-200PLC与单片机通过RS485直接通讯。看了一部分资料,上面都有主站和从站之分,说的是从站不可以主动的向主站发送数据,只有当主站向从站发送命令的时…

    SIMATIC S7-200 2020年11月1日
  • EM277的GSD文件加载不进step7

    从网上下个EM277的GSD,在step7 5。3上可以加载,v5。4上加载不进去,不知与版本还有关系吗? 最佳答案 不应该是版本的问题,你可以装一个其它的GSD文件看看…

    SIMATIC S7-200 2021年7月5日
  • 西门子200单个脉冲

    由于设备需要,需要一个脉冲,该脉冲的占空比是微妙级别的,所以不太好用定时器。目前 我是这样操作的,用西门子200 Q0.0的高速脉冲,当I0.0上升沿输出脉冲数…

    2021年7月5日
  • S7-200模拟量的问题

    S7-200用EM231模块采集的模拟量信号,是否对应过来的数据是0-32000,这些数据是否都是线性对应到我需要 的数据,换个说法就是,用指令库函数就可以直接转换。我想…

    SIMATIC S7-200 2017年6月8日

发表回复

登录后才能评论