恭喜,你发布的帖子
发布于 2016-08-15 11:08:37
6楼
看828D的手册发现,828D的报警数和840D及840DSL是不一样的,840D是分组的比如 70 01 23,其中01代表组,而且后面的报警数到63为止,也就是说70 00 00-70 00 63,没有70 00 64-70 00 99的报警。下一报警就是70 01 00-70 01 63了,所以不会有700285的报警。
而828D不是这样,他就是按顺序排列下来,70 00 00-70 00 99,下雨组 70 01 00-70 01 99,这样的话,和840D的报警算法就不一样。所以828D直接的报警号(不算7)直接除以8就可以,然后余数就是小数位。
比如700247报警,247/8=30,余7,所以报警位就是DBX30.7,可以看下828D的手册,这和手册是吻合的。
对于840D的报警,因为是分组的,每个组8个字节,所以一组只有64个报警。所以算法应该是组和后面的报警位分开来算,比如上面的例子70 03 52,其中03是组,所以有03*8=24个字节。 52是位,除以8=6个字节余4,而70 00 00 起始地址是DB2.DBX180.
所以700352=DB2.DBX(180+03*8+52/8).4=db2.dbx210.4
700352=DB2.DBX(180+03*8+52/8).4=db2.dbx210.4这样的计算是对的,不错。
请填写推广理由:
分享
只看
楼主