modbustcp封裝使用獲取裝置資料示例

2021-10-08 06:30:49 字數 2549 閱讀 3065

//接受資料請求

public functionclient($pz)elseif($value['chang4']==2)elseif($value['chang4']==3)elseif($value['chang4']==4)

$value['zu6_21']=' 00 00 00 06 15 ';

//型別獲取bit為線圈暫存器,其餘為保持暫存器

$value['type']=$data_zhcs[$value['name']]['variable_type'];

if($value['type']=='bit')else

//獲取10進製的暫存器

$value['jcq_10']=$data_zhcs[$value['name']]['register_address']-1;

//轉16進製制的暫存器

$value['jcq_16']=dechex($value['jcq_10']);

//獲取16進製制的暫存器長度

$value['chang_jcq']=strlen($value['jcq_16']);

//判斷16進製制的暫存器長度

if($value['chang_jcq']==1)elseif($value['chang_jcq']==2)elseif($value['chang_jcq']==3)elseif($value['chang_jcq']==4)

//獲取個數(這個基本不會改變,如若改變則接收要全改)

//判斷是32位的變為02

if($value['type']=='int32')else

$value['zu']=$value['zu1_5'].$value['zu6_21'].$value['zu22_23'].$value['zu24_29'].$value['zu30_35'];

$sendstrarray[$k_1] = str_split(str_replace(' ','', $value['zu']), 2);  // 將16進製制資料轉換成兩個一組的陣列

for($j = 0; $j < count($sendstrarray[$k_1]); $j++)

$receivestr[$k_1] ="";

$receivestr[$k_1] = socket_read($socket, 1024,php_binary_read);  // 採用2進製方式接收資料

$receivestrhex[$k_1] = bin2hex($receivestr[$k_1]);  // 將2進製資料轉換成16進製制

//響應狀態

$value['xyzt']=substr($receivestrhex[$k_1],14,2);

//如果返回成功

if($value['xyzt']==$value['zu22_23'])

}//斷開鏈結

socket_shutdown($socket);

socket_close($socket);

$cc=db($xgcs['su***ce'])->where(array('id'=>1))->update($datas);

return$datas;

if($cc)else

}

modbustcp封裝使用獲取裝置資料示例

接受資料請求 public function client pz elseif value chang4 2 elseif value chang4 3 elseif value chang4 4 value zu6 21 00 00 00 06 15 型別獲取bit為線圈暫存器,其餘為保持暫存器 ...

C 獲取獲取鏈結引數 封裝類

獲取url中的引數值 url鏈結 引數名 public static string geturlparametervalue string url,string parameter catch exception ex 分析 url 字串中的引數資訊 輸入的 url 輸出 url 的基礎部分 輸出分...

函式封裝 獲取網頁內容

include include pragma comment lib,wininet.lib rst 獲取的html資訊儲存的變數 keeppath 儲存的檔案路徑 說明 如果存在儲存路徑 rst將為 bool getfromurl const char url,std string rst,con...