在php开发modbus 的时候,部分产品是使用 add16 累加算法 计算校验和的。
查询半天也没找到合适的 add16 php算法,最后终于在 csdn 找到了 loveyoulouyou的作品:
function add16($data){ // https://blog.csdn.net/loveyoulouyou/article/details/120314021 // function getcheckcode($data){ if($data){ $arr = array(); $arr = str_split($data, 2); $result = 0; for ($i=0; $i < count($arr); $i++) { $result =$result + hexdec($arr[$i]); } $result = strtoupper('0'.dechex($result)); //转换成大写 return $result; } }