恭喜,你发布的帖子
发布于 2016-08-15 10:55:09
5楼
有点离谱,如果是700285报警呢,按你的算法:284/8=35.9,对应点是DB1600.DBX35.9啦,这是不对的。
对于840D的报警是从DB2.DBX180.0开始的700000,
那么对应的是:285/8=35.6,那么的地址是:180+35=215,我们再用35*8=280, 285-280=5,
那么对应的地址是:DB2.DBX215.4R报警才对。
事实有些厂的报警号不是遵寻此规律如:
700237对应算起来是:DB2.DBX209.4明显不对吧。
看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
请填写推广理由:
分享
只看
楼主