亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? pc與三菱plc通訊中讀寫各寄存器的delphi源碼.txt

?? PC與三菱PLC通訊中讀寫各寄存器的DELPHI源碼
?? TXT
字號:
function getmaddr(strmaddrno:string):string;
var lngmlen:integer;
    strmno:string;
begin
  lngmlen:=length(strmaddrno);
  strmno:=copy(strmaddrno,2,lngmlen-1);
  getmaddr:=inttohex((strtoint(strmno) div 8)+256,4);
end;

function getdaddr(strdaddrno:string):string;
var
  lngDlen:integer;
  strdno:string;
begin
  lngdlen:=length(strdaddrno);
  strdno:=copy(strdaddrno,2,lngdlen-1);
  getdaddr:=inttoHex((strtoint(strdno)*2+4096),4);
end;

function checksum(strcmd:char;straddr:string;strbytes:string;strdata:string):string;
var
    lngsum:integer;
    i,j:integer;
    a,b,c:integer;
    lngmod1,lngmod2:string;
begin
  lngsum:=0;
  lngsum:=lngsum+ord(strcmd);
  for i:=1 to length(straddr) do
      lngsum:=lngsum+ord(straddr[i]);
  if strbytes<>'' then
      lngsum:=lngsum+ord(strbytes[1])+ord(strbytes[2]);
  if length(strdata)>0 then
     for j:=1 to length(strdata) do
      lngsum:=lngsum+ord(strData[j]);
  lngsum:=lngsum+ord(etx);
  a:=lngsum mod 16;
  if a<10 then lngmod1:=inttostr(a);
  if a=10 then lngmod1:='A';
  if a=11 then lngmod1:='B';
  if a=12 then lngmod1:='C';
  if a=13 then lngmod1:='D';
  if a=14 then lngmod1:='E';
  if a=15 then lngmod1:='F';
  b:=lngsum div 16;
  c:=b mod 16;
  if c<10 then lngmod2:=inttostr(c);
  if c=10 then lngmod2:='A';
  if c=11 then lngmod2:='B';
  if c=12 then lngmod2:='C';
  if c=13 then lngmod2:='D';
  if c=14 then lngmod2:='E';
  if c=15 then lngmod2:='F';
  checksum:=lngmod2+lngmod1;
end;

function tprocess.writePLCsv():boolean;   //向PLC寫入設定值
var
  rst,address:string;
  st,strsum,strsum1,strsum2:string;
  buf:array [0..4096] of Char;
  i,rlen:integer;
begin
  address:=inttohex(200*2+4096,4);  //起始地址200 ---208
  strSum:=CheckSum(cmdwrite, address, '12', data);    //和校驗,字節數18個
  strSum1:=copy(strsum,1,1);
  strSum2:=copy(strsum,2,1);
  st:=chr(stx)+cmdwrite+address+inttohex(18,2)+data+chr(etx)+strsum1+strsum2;
  sio_write(port1,pchar(st),length(st));
  sleep(100);
  rlen:=sio_read(port1,@buf,255);
  setLength(Rst,rlen);
  for i:=0 to rlen-1 do  Rst[i+1]:=Buf[i];
  try
  if rst<>'' then  begin
     if rst[1]=#6 then result:=true else result:=false;
  end else
    result:=false;
  except
  end;
end;

function tprocess.writePLCsw():boolean;   //向PLC寫入開關值
var
  rst,address,data:string;
  st,strsum,strsum1,strsum2:string;
  buf:array [0..4096] of Char;
  i,rlen:integer;
begin
  address:=inttohex(swaddress*2+4096,4);          //起始地址D300 ---319
  data:=swdata;
  strSum:=CheckSum(cmdwrite, address, '02', data);    //和校驗,2個字節
  strSum1:=copy(strsum,1,1);
  strSum2:=copy(strsum,2,1);
  st:=chr(stx)+cmdwrite+address+inttohex(2,2)+data+chr(etx)+strsum1+strsum2;
  sio_write(port1,pchar(st),length(st));
  sleep(100);
  rlen:=sio_read(port1,@buf,255);
  setLength(Rst,rlen);
  for i:=0 to rlen-1 do  Rst[i+1]:=Buf[i];
  try
  if rst<>'' then  begin
     if rst[1]=#6 then result:=true else result:=false;
  end else
    result:=false;
  except
  end;
end;

function tprocess.writePLCswstop():boolean;   //向PLC寫入開關值
var
  rst,address,data:string;
  st,strsum,strsum1,strsum2:string;
  buf:array [0..4096] of Char;
  i,rlen:integer;
begin
  address:=inttohex(300*2+4096,4);          //起始地址D300 ---319
  data:='0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000';
  i:=length(data);
  strSum:=CheckSum(cmdwrite, address, '28', data);    //和校驗,2個字節
  strSum1:=copy(strsum,1,1);
  strSum2:=copy(strsum,2,1);
  st:=chr(stx)+cmdwrite+address+inttohex(40,2)+data+chr(etx)+strsum1+strsum2;
  sio_write(port1,pchar(st),length(st));
  sleep(200);
  rlen:=sio_read(port1,@buf,255);
  setLength(Rst,rlen);
  for i:=0 to rlen-1 do  Rst[i+1]:=Buf[i];
  try
  if rst<>'' then  begin
     if rst[1]=#6 then result:=true else result:=false;
  end else
    result:=false;
  except
  end;
end;


function tprocess.writepid():boolean;   //向PLC寫入設定值
var
  rst,address:string;
  st,strsum,strsum1,strsum2:string;
  buf:array [0..4096] of Char;
  i,rlen:integer;
begin
  address:=inttohex(350*2+4096,4);  //起始地址d350 ---361
  strSum:=CheckSum(cmdwrite, address, '18', piddata);    //和校驗,字節數24個
  strSum1:=copy(strsum,1,1);
  strSum2:=copy(strsum,2,1);
  st:=chr(stx)+cmdwrite+address+inttohex(24,2)+piddata+chr(etx)+strsum1+strsum2;
  sio_write(port1,pchar(st),length(st));
  sleep(100);
  rlen:=sio_read(port1,@buf,255);
  setLength(Rst,rlen);
  for i:=0 to rlen-1 do  Rst[i+1]:=Buf[i];
  try
  if rst<>'' then  begin
     if rst[1]=#6 then result:=true else result:=false;
  end else
    result:=false;
  except
  end;
end;

function tprocess.readPLCpv():boolean;    //讀PLC實際溫度
var
  strsum,strsum1,strsum2,strpvaddr,strpvaddr1,strpvaddr2,strpvaddr3,strpvaddr4:string;
  st,rst,st1:string;
  buf:array[0..4096] of Char;
  rlen,i:integer;
  strpvdno:string;
begin
  strpvdno:='D100';                                // 地址D100---D118
  strpvaddr:=getdaddr(strpvdno);
  strsum:=checksum(cmdread,strpvaddr,'26','');     //讀取38個字節的數據
  strSum1:=copy(strsum,1,1);
  strSum2:=copy(strsum,2,1);

  st:=chr(stx)+cmdread+strpvaddr+inttohex(38,2)+chr(etx)+strsum1+strsum2;
  sio_write(port1,pchar(st),length(st));
  sleep(100);
  rlen:=sio_read(port1,@buf,255);
  setLength(Rst,rlen);
  for i:=0 to rlen-1 do  Rst[i+1]:=Buf[i];
  try
  if rst<>'' then  begin
     if rst[1]=#2 then begin result:=true;
     for i:=1 to 19 do values1[i]:=strtoint('$'+copy(rst,i*4,2))*256+strtoint('$'+copy(rst,i*4-2,2));
     end else result:=false;
  end else result:=false;
  except
  end;
end;

function tprocess.readPLCsv():boolean;     //讀PLC設定溫度
var
  strsum,strsum1,strsum2,strpvaddr,strpvaddr1,strpvaddr2,strpvaddr3,strpvaddr4:string;
  st,rst,st1:string;
  buf:array[0..4096] of Char;
  rlen,i:integer;
  strpvdno:string;
begin
  strpvdno:='D200';                                // 地址D200-D208
  strpvaddr:=getdaddr(strpvdno);
  strsum:=checksum(cmdread,strpvaddr,'12','');     //讀取18個字節的數據
  strSum1:=copy(strsum,1,1);
  strSum2:=copy(strsum,2,1);

  st:=chr(stx)+cmdread+strpvaddr+inttohex(18,2)+chr(etx)+strsum1+strsum2;
  sio_write(port1,pchar(st),length(st));
  sleep(100);
  rlen:=sio_read(port1,@buf,255);
  setLength(Rst,rlen);
  for i:=0 to rlen-1 do  Rst[i+1]:=Buf[i];
  try
  if rst<>'' then  begin
     if rst[1]=#2 then begin result:=true;
     for i:=1 to 9 do values2[i]:=strtoint('$'+copy(rst,i*4,2))*256+strtoint('$'+copy(rst,i*4-2,2));
     end else result:=false;
  end else result:=false;
  except
  end;
end;

function tprocess.readPLCout():boolean;     //讀PLC輸出開關量
var
  strsum,strsum1,strsum2,strpvaddr,strpvaddr1,strpvaddr2,strpvaddr3,strpvaddr4:string;
  st,rst,st1:string;
  buf:array[0..4096] of Char;
  rlen,i:integer;
  strpvdno:string;
begin
  strpvdno:='D300';                                // 地址D300-D319
  strpvaddr:=getdaddr(strpvdno);
  strsum:=checksum(cmdread,strpvaddr,'28','');     //讀取40個字節的數據
  strSum1:=copy(strsum,1,1);
  strSum2:=copy(strsum,2,1);

  st:=chr(stx)+cmdread+strpvaddr+inttohex(40,2)+chr(etx)+strsum1+strsum2;
  sio_write(port1,pchar(st),length(st));
  sleep(100);
  rlen:=sio_read(port1,@buf,255);
  setLength(Rst,rlen);
  for i:=0 to rlen-1 do  Rst[i+1]:=Buf[i];
  try
  if rst<>'' then  begin
     if rst[1]=#2 then begin result:=true;
     for i:=1 to 20 do values4[i]:=strtoint('$'+copy(rst,i*4,2))*256+strtoint('$'+copy(rst,i*4-2,2));
     end else result:=false;
  end else result:=false;
  except
  end;
end;

function tprocess.readplcx():boolean;  //讀PLC輸入值
var
  strsum:string;
  strsum1:string;
  strsum2:string;
  buf:array[0..4096] of Char;
  st,rst:string;
  rlen,i:integer;
  groupaddrx:string;
begin
  groupaddrx:='0080';
  strsum:=checksum(cmdread,groupaddrx,'02','');
  strsum1:=copy(strsum,1,1);
  strsum2:=copy(strsum,2,1);
  st:=chr(stx)+cmdread+groupaddrx+'02'+chr(etx)+strsum1+strsum2;
  sio_write(port1,pchar(st),length(st));
  sleep(100);
  rlen:=sio_read(port1,@buf,255);
  setLength(Rst,rlen);
  for i:=0 to rlen-1 do  Rst[i+1]:=Buf[i];
  try
  if rst<>'' then  begin
     if rst[1]=#2 then begin result:=true;
     for i:=1 to 2 do values4[i]:=strtoint('$'+copy(rst,i*2,2));
     end else result:=false;
  end else result:=false;
  except
  end;
end;

function tprocess.readplcy():boolean;  //讀PLC輸出值
var
  strsum:string;
  strsum1:string;
  strsum2:string;
  buf:array[0..4096] of Char;
  st,rst:string;
  rlen,i:integer;
  groupaddrx:string;
begin
  groupaddrx:='00A0';

  strsum:=checksum(cmdread,groupaddrx,'04','');
  strsum1:=copy(strsum,1,1);
  strsum2:=copy(strsum,2,1);
  st:=chr(stx)+cmdread+groupaddrx+'04'+chr(etx)+strsum1+strsum2;
  sio_write(port1,pchar(st),length(st));
  sleep(100);
  rlen:=sio_read(port1,@buf,255);
  setLength(Rst,rlen);
  for i:=0 to rlen-1 do  Rst[i+1]:=Buf[i];
  try
  if rst<>'' then  begin
     if rst[1]=#2 then begin result:=true;
     for i:=1 to 3 do values3[i]:=strtoint('$'+copy(rst,i*2,2));
     end else result:=false;
  end else result:=false;
  except
  end;
end;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一级午夜免费电影| 欧美日韩电影在线| 在线视频观看一区| 日韩欧美亚洲另类制服综合在线| 中文av一区二区| 亚洲自拍偷拍网站| 成人妖精视频yjsp地址| 欧美探花视频资源| av动漫一区二区| 日韩网站在线看片你懂的| 欧美国产日韩在线观看| 久久精品国产99久久6| 色狠狠综合天天综合综合| 精品国一区二区三区| 一区二区免费在线| 国产宾馆实践打屁股91| 777久久久精品| 国产三级精品视频| 日本女优在线视频一区二区| 美女在线观看视频一区二区| 欧美伦理电影网| 一区二区中文字幕在线| 国产99久久精品| 欧美成人乱码一区二区三区| 亚洲国产日日夜夜| 成人午夜碰碰视频| 久久久国产一区二区三区四区小说| 婷婷成人综合网| 91丨九色丨国产丨porny| 国产婷婷色一区二区三区| 日本成人中文字幕在线视频| 成人动漫一区二区| 日韩免费在线观看| 久久精品噜噜噜成人av农村| 欧美三级视频在线观看 | 成人av网址在线| 久久久99精品久久| 国产一区二区三区在线看麻豆| 欧美日韩精品欧美日韩精品一综合| 中文字幕一区二区三区四区| 国产成人精品综合在线观看 | 欧美一区二区三区免费视频| 亚洲国产乱码最新视频 | 中文字幕一区二区三区精华液| 欧美性xxxxx极品少妇| 国产精品理论片在线观看| 欧美精品一区二区三区视频| 欧美美女bb生活片| 欧美在线观看18| 91一区二区在线观看| 国产不卡高清在线观看视频| 国产成a人亚洲精| 国产精品中文字幕日韩精品| 久久66热偷产精品| 偷拍一区二区三区| 成人久久久精品乱码一区二区三区 | 91精品蜜臀在线一区尤物| 亚洲国产你懂的| 国产精品福利一区二区| 欧美大胆一级视频| 日韩精品中文字幕在线一区| 欧美精品在欧美一区二区少妇| 精品99一区二区| 亚洲bt欧美bt精品777| 一区二区三区在线视频观看| 91麻豆免费观看| 一区二区三区国产精华| 宅男噜噜噜66一区二区66| 免费一级欧美片在线观看| 精品对白一区国产伦| 国产69精品久久久久777| 最新日韩av在线| 欧美一区二区三区四区五区| 极品少妇一区二区三区精品视频| 亚洲欧美怡红院| 4438x亚洲最大成人网| 成人av小说网| 日韩黄色免费网站| 中文在线一区二区| 欧美日韩中文一区| 国产成人免费xxxxxxxx| 亚洲不卡在线观看| 26uuu国产在线精品一区二区| 日本高清不卡aⅴ免费网站| 午夜精品福利一区二区三区av | 亚洲欧美精品午睡沙发| 亚洲男人电影天堂| 久久久亚洲午夜电影| 成人爱爱电影网址| 精品一区中文字幕| 亚洲日穴在线视频| 国产日韩精品一区| 正在播放亚洲一区| 欧美最猛性xxxxx直播| 久久99精品国产麻豆婷婷洗澡| 一区二区三区免费观看| 久久美女艺术照精彩视频福利播放| 欧美中文字幕一区二区三区| 国产一区二区三区免费在线观看| 亚洲国产精品视频| 国产亚洲欧洲997久久综合| 91久久精品日日躁夜夜躁欧美| 韩日av一区二区| 欧美xfplay| 欧美一级生活片| 在线日韩av片| 欧美亚洲国产一区在线观看网站| 国产精品一区二区久激情瑜伽| 麻豆精品一区二区av白丝在线| 樱桃国产成人精品视频| 亚洲欧美色图小说| 国产无一区二区| 久久久不卡影院| 日韩视频一区二区三区| 欧美一区在线视频| 在线精品视频一区二区| 色婷婷国产精品综合在线观看| 成人精品免费网站| 欧美亚洲综合另类| 一本一道波多野结衣一区二区| 一本久道久久综合中文字幕| 一本色道亚洲精品aⅴ| 91高清视频免费看| 精品久久久久一区二区国产| 91精品国产91久久久久久一区二区| 3atv一区二区三区| 日韩精品中文字幕一区二区三区| 精品三级av在线| 国产女同性恋一区二区| 国产精品第五页| 一区二区三区四区在线免费观看| 亚洲国产一区二区三区青草影视| 同产精品九九九| 狠狠网亚洲精品| jiyouzz国产精品久久| 色婷婷国产精品久久包臀| 欧美亚洲愉拍一区二区| 69堂国产成人免费视频| 久久先锋影音av鲁色资源网| 中文字幕在线不卡视频| 亚洲国产精品一区二区久久 | 91麻豆精品国产91久久久 | 国产精品主播直播| 91黄色在线观看| 欧美电影免费提供在线观看| 国产婷婷色一区二区三区在线| 亚洲精品国产a| 麻豆91精品91久久久的内涵| 成人综合婷婷国产精品久久蜜臀 | 欧美精品一区视频| 中文字幕中文字幕在线一区 | 男男成人高潮片免费网站| 国产精品一区专区| 欧美影视一区在线| 久久久久久久精| 亚洲大片在线观看| 国产精品1区2区3区在线观看| 91国产丝袜在线播放| 久久日一线二线三线suv| 亚洲欧美一区二区视频| 久久精品国产亚洲高清剧情介绍 | 亚洲高清免费在线| 国产高清亚洲一区| 欧美日韩不卡视频| 国产精品福利一区二区| 久久精品久久99精品久久| 在线免费视频一区二区| 国产亚洲精品资源在线26u| 午夜免费久久看| 99精品桃花视频在线观看| 日韩欧美国产三级电影视频| 麻豆精品在线观看| 91浏览器打开| 国产亚洲一二三区| 麻豆精品视频在线| 欧美日韩一区二区在线观看视频| 国产精品美女视频| 国产原创一区二区| 欧美一级在线免费| 日本成人超碰在线观看| 99免费精品视频| 国产精品热久久久久夜色精品三区 | 国产成人综合亚洲网站| 日韩免费视频线观看| 亚洲一级在线观看| 一本久久a久久免费精品不卡| 一区在线播放视频| 99精品视频中文字幕| 中文字幕一区二区视频| 国产精品18久久久久久vr| 欧美丰满一区二区免费视频| 亚洲福利国产精品| 欧美写真视频网站| 亚洲国产va精品久久久不卡综合| 91免费小视频| 一区二区三区在线不卡| 一本到不卡精品视频在线观看| 一区在线观看免费| 色88888久久久久久影院野外| ...av二区三区久久精品|