在研究DF1协议时,遇到一个问题就是它的地址格式是Axx:yy类型。这个地址中,“A”是功能字母,“xx”为表格编号,“yy”是元素编号。如F23:0,就是“状态1计数次数”这个变量。
在组包的时候,这个地址的“F”该怎么发?网上找了很多实例报文,并没有提及此事。如下这个报文:
没有发现这个"N"在哪里体现。 后面研究了下一份AB电表的说明书,发现它的数据表汇总上的“CSP文件号”的数字编号部分,是唯一的,不会出现两个“F23”这种,那这样的话就是说在报文中只需要指定表格编号就行了,如上图报文中“N7:1”就只需要发个7就行了。后来实验了确实如此。
后面还发现这个字母好像还跟元素的数据类型有点联系,如“F”表下的数据都是浮点,“N”下面的都是整型。当然这只是猜测。
另外DF1协议中的指令只需要用三维数组的读写指令(A2/AA)就行了,其他指令不是正式发布?所以在实现DF1的时候,只要考虑实现三维数组的指令即可。
读取报文格式:
写报文格式:
报文中的File Type其实是数据类型。如下图所示: