最近在研究别人的一份s7-1200的程序,以下是第三方设备(超声波流量表)与1214C进行串行通信的编写方式


以上三个程序段进行发送、接收、数据解析的相关设置。问题是以下解析部分(FC401块中)SCL程序编写部分内容看不懂:

1、这三句的实际意义是什么?为啥要除16,还要对16取余,最后又减整数30,转化为16进制吗?
2、如果是这样,那下面语句中,比如: #Real_1st.FlowTemp:=DINT_TO_REAL(#tran[7]*1000 + #tran[8]*100 + #tran[9]*10 + #tran[10])/10中的局部变量也是16进制吗?
#h_b:= #tran[#i] / 16;
#d_b:= #tran[#i] MOD 16;
#tran[#i]:= (#h_b * 10 + #d_b) - 30;
相关背景数据块原始包、解析包、发送包内容如下:


问题3是,因为手头没有此设备的相关通讯协议,(个人猜测是WDT300或TDS-100FS流量表的一种MODBUS通讯协议)。发送包中的17个字节内容,始终看不懂,还请大家帮忙分析下各字节的含义。。。
初次发帖,不足之处请多多指正。。