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

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

?? serialdebug.pas

?? vb與三菱PLC通訊 實現(xiàn)PC與PLC之間的連接
?? PAS
?? 第 1 頁 / 共 2 頁
字號:
        end;
    end;
end;

//清空數(shù)據(jù)顯示區(qū)
procedure TMainForm.btnClearClick(Sender: TObject);
begin
    mmReceive.Text:='';
end;

//定時器在指定的事件內觸發(fā)該事件,實現(xiàn)數(shù)據(jù)的定時發(fā)送
procedure TMainForm.tmrSendTimer(Sender: TObject);
begin
    //如果串口已經(jīng)打開,則發(fā)送數(shù)據(jù)
    if MSComm.PortOpen then
        btnSendClick(sender);
end;

function    ReadFromPLC(ReadChar:Array of char; ReadAddress:Array of Byte;
       ReadBytes :Integer): Boolean;
var
   ReadDataSum:integer;
   DataSumCheck:integer;
   tmpStr:String;
   tmpchr,chr1,chr2:char;
   tmpVar:Variant;
   Input:Variant;
   InputLen,i,tmpInt:Integer;

begin
   DataSumCheck:=0;
   tmpVar:=VarArrayCreate([1,11],varByte);
   tmpVar[1]:=$02;//STX
   tmpVar[2]:=$30;//CMDO
   DataSumCheck:=DataSumCheck+$30;   
   tmpVar[3]:=ReadAddress[0];
   DataSumCheck:=DataSumCheck+ReadAddress[0];
   tmpVar[4]:=ReadAddress[1];
   DataSumCheck:=DataSumCheck+ReadAddress[1];
   tmpVar[5]:=ReadAddress[2];
   DataSumCheck:=DataSumCheck+ReadAddress[2];
   tmpVar[6]:=ReadAddress[3];
   DataSumCheck:=DataSumCheck+ReadAddress[3];

   tmpStr:=IntToHex(ReadBytes,2);
   tmpChr:=tmpStr[1];
   tmpVar[7]:=Ord(tmpChr);
   DataSumCheck:=DataSumCheck+Ord(tmpChr);
   tmpChr:=tmpStr[2];
   tmpVar[8]:=Ord(tmpChr);
   DataSumCheck:=DataSumCheck+Ord(tmpChr);

   tmpVar[9]:=$03;//ETX
   DataSumCheck:=DataSumCheck+$03;

   tmpStr:=IntToHex(DataSumCheck,2);
   tmpChr:=tmpStr[1];
   tmpVar[10]:=Ord(tmpChr);
   tmpChr:=tmpStr[2];
   tmpVar[11]:=Ord(tmpChr);
   MainForm.MSComm.Output:=tmpVar;

   sleep(1000);

   InputLen:=MainForm.MSComm.InBufferCount;
   Input:=MainForm.MSComm.Input;
   if InputLen>0 then
   begin
      if Input[0]=$02 then//STX
      begin
        ReadDataSum:=0;
        for i:=1 to ReadBytes do
        begin
            tmpInt:=Input[i];
            ReadChar[i-1]:=chr(tmpInt);
            ReadDataSum:=ReadDataSum+Input[i];
        end;
        inc(i);
        if Input[i]=$03 then
        begin
            ReadDataSum:=ReadDataSum+$03;
            tmpStr:=IntToHex(ReadDataSum,2);
            chr1:=tmpStr[1];
            chr2:=tmpStr[2];            
            if (ord(chr1)=Input[1]) and (ord(chr1)=Input[1]) then
            begin
                Result:=True;
                ShowMessage('DataRead succeed');
            end
            else begin
                Result:=False;                
                ShowMessage('DataRead check fail');                
            end;
        end;
      end
      else
        Result:=False;
   end
   else
      Result:=False;
end;


function    WritePLC(WriteChar:Array of char; WriteAddress:Array of Byte;
       WriteBytesCount :Integer): Boolean;
var
   ReadDataSum:integer;
   DataSumCheck:integer;
   tmpStr:String;
   tmpchr,chr1,chr2:char;
   tmpVar:Variant;
   Input:Variant;
   InputLen,i,tmpInt:Integer;

begin
   DataSumCheck:=0;
   tmpInt:=11+WriteBytesCount;
   tmpVar:=VarArrayCreate([1,tmpInt],varByte);
   tmpVar[1]:=$02;//STX
   tmpVar[2]:=$31;//CMDO
   DataSumCheck:=DataSumCheck+$31;   
   tmpVar[3]:=WriteAddress[0];
   DataSumCheck:=DataSumCheck+WriteAddress[0];
   tmpVar[4]:=WriteAddress[1];
   DataSumCheck:=DataSumCheck+WriteAddress[1];
   tmpVar[5]:=WriteAddress[2];
   DataSumCheck:=DataSumCheck+WriteAddress[2];
   tmpVar[6]:=WriteAddress[3];
   DataSumCheck:=DataSumCheck+WriteAddress[3];

   tmpStr:=IntToHex(WriteBytesCount,2);
   tmpChr:=tmpStr[1];
   tmpVar[7]:=Ord(tmpChr);
   DataSumCheck:=DataSumCheck+Ord(tmpChr);
   tmpChr:=tmpStr[2];
   tmpVar[8]:=Ord(tmpChr);
   DataSumCheck:=DataSumCheck+Ord(tmpChr);
   tmpVar[9]:=$03;//ETX
   DataSumCheck:=DataSumCheck+$03;

   for i:=0 to WriteBytesCount-1 do
   begin
      tmpVar[10+i]:=ord(WriteChar[i]);
      DataSumCheck:=DataSumCheck+ord(WriteChar[i]);
   end;

   tmpStr:=IntToHex(DataSumCheck,2);
   tmpChr:=tmpStr[1];
   tmpVar[10+WriteBytesCount]:=Ord(tmpChr);
   tmpChr:=tmpStr[2];
   tmpVar[11+WriteBytesCount]:=Ord(tmpChr);

   MainForm.MSComm.Output:=tmpVar;

   sleep(1000);

   InputLen:=MainForm.MSComm.InBufferCount;
   Input:=MainForm.MSComm.Input;
   if InputLen>0 then
   begin
      if Input[0]=$06 then//STX
      begin
         Result:=True;
         ShowMessage('DataWrite succeed');
      end
      else begin
         Result:=False;
         ShowMessage('DataWrite check fail');                
      end;
   end
   else
      Result:=False;
end;

procedure TMainForm.Panel2Click(Sender: TObject);
var
  tmpWord:Word;
  str:string;
  ch:char;
begin
  tmpWord:=3;
  str:=IntToHex(3,2);
  ch:=str[1];
  Caption:=ch;
end;

procedure TMainForm.Button1Click(Sender: TObject);
 var
    Len:Integer;
    i,count,tmpInt:Integer;
    tmpVar:Variant;
    tmpStr,Output:String;

begin
   if not MSComm.PortOpen then
    begin
        showmessage('沒有打開串口!');
        Exit;
    end
    else begin
        //發(fā)送二進制數(shù),需要使用Variant變量矩陣,矩陣大小自動調節(jié)
        if HexSend then
        begin
            shape1.Brush.Color:=clred;
            Output:='02,37,30,30,30,38,03,31,32';
            Len:=Length(Output);
            if Len>0 then
            begin
               i:=1;
               count:=1;
               //創(chuàng)建一個Variant數(shù)組
               tmpVar:=VarArrayCreate([1,1],varByte);
               while(i<Len) do
               begin
                  //每3個字符串中截取2個字符,轉換為16進制
                  tmpStr:=Copy(Output,i,2);
                  tmpStr:=LowerCase(tmpStr);
                  tmpInt:=HexToInt(tmpStr);
                  if tmpInt=-1 then
                  begin
                      showmessage('發(fā)送的數(shù)據(jù)格式有問題!');
                      exit;
                  end
                  else begin
                      tmpVar[Count]:=tmpInt;
                      Inc(count);
                     //增大Variant數(shù)組
                      VarArrayRedim(tmpVar,count);
                  end;
                  i:=i+3;
               end;
               MSComm.Output :=tmpVar;
            end;
        end
        else begin
            MSComm.Output :=mmSend.Text;
end;
end;
end;

procedure TMainForm.Label11Click(Sender: TObject);
begin
label1.Caption:= 'String';
end;

procedure TMainForm.Button2Click(Sender: TObject);
  var
    Len:Integer;
    i,count,tmpInt:Integer;
    tmpVar:Variant;
    tmpStr,Output:String;

begin
  if not MSComm.PortOpen then
    begin
        showmessage('沒有打開串口!');
        Exit;
    end
    else begin
        //發(fā)送二進制數(shù),需要使用Variant變量矩陣,矩陣大小自動調節(jié)
        if HexSend then
        begin
            shape1.Brush.Color:=clwhite;
            Output:='02,38,30,30,30,38,03,30,33';
            Len:=Length(Output);
            if Len>0 then
            begin
               i:=1;
               count:=1;
               //創(chuàng)建一個Variant數(shù)組
               tmpVar:=VarArrayCreate([1,1],varByte);
               while(i<Len) do
               begin
                  //每3個字符串中截取2個字符,轉換為16進制
                  tmpStr:=Copy(Output,i,2);
                  tmpStr:=LowerCase(tmpStr);
                  tmpInt:=HexToInt(tmpStr);
                  if tmpInt=-1 then
                  begin
                      showmessage('發(fā)送的數(shù)據(jù)格式有問題!');
                      exit;
                  end
                  else begin
                      tmpVar[Count]:=tmpInt;
                      Inc(count);
                     //增大Variant數(shù)組
                      VarArrayRedim(tmpVar,count);
                  end;
                  i:=i+3;
               end;
               MSComm.Output :=tmpVar;
            end;
        end
        else begin
            MSComm.Output :=mmSend.Text;
end;
end;
end;


procedure TMainForm.Button3Click(Sender: TObject);
begin
if savedialog1.Execute then mmreceive.Lines.SaveToFile(savedialog1.FileName);
end;

procedure TMainForm.Button4Click(Sender: TObject);
begin
if  opendialog1.Execute then mmreceive.Lines.loadfromfile(opendialog1.FileName);
end;

procedure TMainForm.Button5Click(Sender: TObject);
var
  Len:Integer;
    i,count,tmpInt:Integer;
    tmpVar:Variant;
    tmpStr,Output:String;
begin
  if not MSComm.PortOpen then
    begin
        showmessage('沒有打開串口!');
        Exit;
    end
    else begin
        //發(fā)送二進制數(shù),需要使用Variant變量矩陣,矩陣大小自動調節(jié)


             MSComm.InputMode:=0;
        HexShow:=False;
            mmReceive.Text:='';

            Output:='02,30,38,30,30,38,30,38,03,36,42';
            Len:=Length(Output);
            if Len>0 then
            begin
               i:=1;
               count:=1;
               //創(chuàng)建一個Variant數(shù)組
               tmpVar:=VarArrayCreate([1,1],varByte);
               while(i<Len) do
               begin
                  //每3個字符串中截取2個字符,轉換為16進制
                  tmpStr:=Copy(Output,i,2);
                  tmpStr:=LowerCase(tmpStr);
                  tmpInt:=HexToInt(tmpStr);
                  if tmpInt=-1 then
                  begin
                      showmessage('發(fā)送的數(shù)據(jù)格式有問題!');
                      exit;
                  end
                  else begin
                      tmpVar[Count]:=tmpInt;
                      Inc(count);
                     //增大Variant數(shù)組
                      VarArrayRedim(tmpVar,count);
                  end;
                  i:=i+3;
               end;
               MSComm.Output :=tmpVar;
            end;



end;
end;


procedure TMainForm.Button6Click(Sender: TObject);
begin
close;
end;

procedure TMainForm.Button7Click(Sender: TObject);
begin
  mmsend.Text:='';
end;

end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产视频一区二区在线| 精品亚洲aⅴ乱码一区二区三区| 欧美美女直播网站| 激情综合五月天| 色婷婷精品久久二区二区蜜臀av| 丁香网亚洲国际| 高清视频一区二区| 欧美久久久久久久久中文字幕| 国产亚洲欧洲一区高清在线观看| 午夜欧美视频在线观看| 日韩成人精品在线观看| 久久疯狂做爰流白浆xx| 国产成人av福利| 粗大黑人巨茎大战欧美成人| 99精品视频一区| 欧美三级日韩在线| 精品国免费一区二区三区| 精品国产自在久精品国产| 亚洲国产精品久久人人爱蜜臀 | 欧美韩国日本不卡| 2020日本不卡一区二区视频| 国产欧美va欧美不卡在线| 亚洲精品高清视频在线观看| 亚洲成人午夜电影| 国产精品一区二区你懂的| 99久久婷婷国产综合精品| 国产亚洲成av人在线观看导航| 日本人妖一区二区| 日韩一区二区三区高清免费看看| www欧美成人18+| 蜜臂av日日欢夜夜爽一区| 成人免费视频播放| 中文一区二区完整视频在线观看| 国产一区二区三区免费播放| 91美女片黄在线观看91美女| 日韩精品在线看片z| 国产精品久久毛片| 久久国内精品视频| 精品99久久久久久| 国产精品白丝jk黑袜喷水| 久久久久国色av免费看影院| 亚洲无人区一区| 欧美午夜电影网| 中文字幕欧美日韩一区| 成人爱爱电影网址| 精品国精品国产| 国产aⅴ精品一区二区三区色成熟| 久久欧美一区二区| 成人丝袜视频网| 亚洲免费毛片网站| 国产成人精品亚洲日本在线桃色| 欧美激情一区在线| 一本久久a久久精品亚洲| 亚洲一区日韩精品中文字幕| www.日韩在线| 欧美激情在线一区二区| 99精品久久只有精品| 亚洲高清视频的网址| 日韩午夜在线播放| 国产91高潮流白浆在线麻豆| 亚洲色图另类专区| av色综合久久天堂av综合| 一区二区成人在线视频| 91免费国产在线观看| 婷婷六月综合网| 久久久精品黄色| 一本一道久久a久久精品综合蜜臀| 亚洲一区二区av电影| 欧美精品一区男女天堂| 91蜜桃在线免费视频| 日本v片在线高清不卡在线观看| 欧美日韩午夜在线| 国产成人精品亚洲日本在线桃色| 亚洲精品免费电影| 337p日本欧洲亚洲大胆精品| 92国产精品观看| 久久精品国产一区二区三| 1024成人网色www| 91女神在线视频| 韩国成人精品a∨在线观看| 久久久久久9999| 欧美日韩在线直播| 丁香另类激情小说| 蜜臀久久99精品久久久久宅男| 国产精品网曝门| 91丝袜高跟美女视频| 精品一区免费av| 亚洲一卡二卡三卡四卡无卡久久| 久久先锋影音av| 欧美老女人第四色| 91丨porny丨首页| 高清av一区二区| 国产一区二区三区黄视频 | 91偷拍与自偷拍精品| 久久成人久久爱| 天堂精品中文字幕在线| 91精品国产综合久久蜜臀| 奇米亚洲午夜久久精品| 亚洲黄色小说网站| 国产精品久久久久三级| 精品国产伦一区二区三区观看体验 | 欧美tickle裸体挠脚心vk| 国模冰冰炮一区二区| 天堂va蜜桃一区二区三区| 一级精品视频在线观看宜春院| 国产精品素人视频| 久久久精品综合| 精品粉嫩aⅴ一区二区三区四区| 欧美日韩成人综合| 欧美男女性生活在线直播观看| 91美女片黄在线观看| 成人精品视频.| 成人午夜视频福利| 丰满放荡岳乱妇91ww| 丁香六月久久综合狠狠色| 风间由美一区二区av101 | 日韩免费在线观看| 欧美一区二区三区在线电影| 春色校园综合激情亚洲| 粉嫩高潮美女一区二区三区| 国产成人精品一区二区三区网站观看 | 久久综合五月天婷婷伊人| 日韩欧美激情在线| 欧美成人一区二区三区在线观看 | 色一区在线观看| 在线一区二区三区| 国产传媒久久文化传媒| 国产精品一区二区在线看| 成人涩涩免费视频| 不卡欧美aaaaa| 日本国产一区二区| 欧美日韩aaaaa| 精品欧美一区二区久久| 久久久国产午夜精品| 国产精品乱子久久久久| 亚洲精选视频免费看| 亚洲第一电影网| 老司机免费视频一区二区| 国产成人精品综合在线观看| 91色porny在线视频| 欧美蜜桃一区二区三区| 精品国产电影一区二区| 中文字幕制服丝袜一区二区三区 | aaa欧美日韩| 欧美亚一区二区| 欧美成人激情免费网| 亚洲国产精品激情在线观看| 亚洲资源中文字幕| 久久99日本精品| 91蜜桃网址入口| 日韩欧美色综合网站| 亚洲人成小说网站色在线| 日韩中文字幕亚洲一区二区va在线| 国产在线精品一区二区三区不卡| 99久久婷婷国产| 欧美一级午夜免费电影| 成人欧美一区二区三区小说| 偷偷要91色婷婷| 成人v精品蜜桃久久一区| 69堂国产成人免费视频| 国产欧美日韩三区| 日韩在线一区二区| 99久久精品一区二区| 欧美成人一区二区三区在线观看| 国产精品成人免费| 精品一区二区在线播放| 一本色道久久综合亚洲精品按摩| 精品美女被调教视频大全网站| 亚洲激情在线激情| 国产成人精品影院| 日韩免费高清av| 午夜视频在线观看一区二区三区| 国产91精品一区二区麻豆亚洲| 在线播放中文一区| 一区二区在线观看av| 国产91对白在线观看九色| 欧美成人性福生活免费看| 亚洲午夜精品久久久久久久久| 成人在线视频一区| www久久久久| 精品在线亚洲视频| 日韩三级高清在线| 五月激情六月综合| 欧美性感一类影片在线播放| 欧美激情综合网| 国产在线不卡一卡二卡三卡四卡| 欧美久久久久久久久| 夜夜亚洲天天久久| 色婷婷精品久久二区二区蜜臂av | 在线亚洲一区二区| 色哟哟日韩精品| 国产精品午夜免费| 国产夫妻精品视频| 久久久久久夜精品精品免费| 久久成人免费日本黄色| 欧美一区二区三区思思人| 日韩精彩视频在线观看| 欧美人妇做爰xxxⅹ性高电影| 一区二区视频免费在线观看| 99精品一区二区|