能不能讲解海为与DL-T-645多功能电能表通讯例子? 点击:831 | 回复:6



abcdefjj

    
  • 精华:0帖
  • 求助:1帖
  • 帖子:3帖 | 5回
  • 年度积分:0
  • 历史总积分:12
  • 注册:2003年5月12日
发表于:2013-04-13 20:14:58
楼主

我在看一个海为网站上下的例子,里面有我要用到的电度表通讯的例子,发送倒是能看明白,就是接受解码这部分看不懂,想请帮忙解释下,还有我用模拟仿真也不对。我在寄存器表里建了个模拟返回的数据表,来解码显示我要的数据也显示不出来。

比如我返回的是有功 v1000  到v1017 分别是68、07、05、06、00、00、00、68、81、06、43、c3、97、c6、33、33、eb、16.

正常应该是93.64

然后用下面的解码显示(当前)有功总电能是零????


上面的是按照海为的方法的,不知要怎么弄才能显示正确的数据,还请海为的帮忙解释下啊?谢谢!




海为_1

  • 精华:1帖
  • 求助:0帖
  • 帖子:31帖 | 165回
  • 年度积分:0
  • 历史总积分:950
  • 注册:2006年11月11日
发表于:2013-04-15 10:12:34
1楼

有功总电能返回20个字节,你检查一下是否通讯成功,如果有问题可以通讯在线QQ联系,例子读取的数据内容应该很详细的。

  • 精华:0帖
  • 求助:1帖
  • 帖子:3帖 | 5回
  • 年度积分:0
  • 历史总积分:12
  • 注册:2003年5月12日
发表于:2013-04-15 20:30:40
2楼

你好,我又测试了下,返回的字节只有18个,而且用通讯调试软件测试是成功的。


我想问下海为与电度表通讯的程序里当前)有功总电能里减858993459是什么意思,为什么要这么减?能不能帮我详细的解释下,谢谢!


海为_1

  • 精华:1帖
  • 求助:0帖
  • 帖子:31帖 | 165回
  • 年度积分:0
  • 历史总积分:950
  • 注册:2006年11月11日
发表于:2013-04-16 11:00:38
3楼

十进制858993459就是十六进制33333333H,为什么要这样计算跟什么PLC没关系,是根据通讯协议要求这样解释返回数据的,数据如果是32位的那么返回是20个字节,使用指令是D.SUB和D,BIN,你返回是18个字节那么肯定返回数据是16位数据,应该使用SUB和BIN指令,程序例子非常清楚,有解释返回2字节、3字节、4字节数据的例子。

海为_1

  • 精华:1帖
  • 求助:0帖
  • 帖子:31帖 | 165回
  • 年度积分:0
  • 历史总积分:950
  • 注册:2006年11月11日
发表于:2013-04-16 11:24:39
4楼

例子的协议与你这个协议可能有一些不同,你这个返回18个字节(数据长度4字节),把D.SUB指令的In1端子输入V1007改为V1006即可,V522就会=9364(隐含2位小数),如果还有问题可以QQ379579038联系。

海为_1

  • 精华:1帖
  • 求助:0帖
  • 帖子:31帖 | 165回
  • 年度积分:0
  • 历史总积分:950
  • 注册:2006年11月11日
发表于:2013-04-16 11:27:00
5楼

协议规定“数据域DATA:数据域包括数据标识和数据、密码等,其结构随控制码的功能而改变。
传输时发送方按字节进行加33H 处理,接收方按字节进行减33H 处理。”,所以,返回数据需要减去十六进制33333333H(32位数据时)或者减去十六进制3333H(16数据时)。

  • 精华:0帖
  • 求助:1帖
  • 帖子:3帖 | 5回
  • 年度积分:0
  • 历史总积分:12
  • 注册:2003年5月12日
发表于:2013-04-17 20:59:14
6楼

引用 海为_1 的回复内容: 例子的协议与你这个协议可能有一些不同,你这个返回18个...


恩恩!是的!我返回的是16个数据的,改了就显示正常了,非常感谢海为—1的耐心解答,那个十进制858993459我一开始就没想到啊!就是16#33333333的。呵呵!做这个总电度数显示,是为了让抄表的方便点,那个电度表是在一楼配电柜里的。


热门招聘
相关主题

官方公众号

智造工程师