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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? econv230p.~pas

?? Delphi編寫的ModBus協(xié)議上位機(jī)軟件
?? ~PAS
?? 第 1 頁(yè) / 共 4 頁(yè)
字號(hào):
      57600: b57600.Checked := true;
      115200: b115200.Checked := true;
      128000: b128000.Checked := true;
      256000: b256000.Checked := true;
      else
      begin
        buser.Checked := true;
      end;
    end; // end case econfile.comm.baudrate

    m_address.Items[econfile.comm.rtuaddress-1].Checked := true;

    // 初始化通訊相關(guān)參數(shù)
    vacomm1.Close;
    vacomm1.Baudrate := changbaudrate(econfile.comm.baudrate);
    vacomm1.UserBaudrate := econfile.comm.userbaud;
    vacomm1.Databits := changdatabits(econfile.comm.databits);
    vacomm1.Stopbits := changstopbits(econfile.comm.stopbits);
    vacomm1.Parity := changparity(econfile.comm.parity);
    vacomm1.PortNum := econfile.comm.portnum;
    sendtimer.Enabled := false;
    revtimer.Enabled := false;
    sendtimer.Interval := 1;
    timerout1.Interval := econfile.comm.timeout;
    m_comset.Enabled := true;
//    readholdregister(econfile);
//    readfifo(econfile);
  end;//end with mainform do
end;

//----------------------窗口激活處理-------------------------
procedure TMainForm.FormActivate(Sender: TObject);
begin
  mainform.Caption := companyname;
end;

//----------------------數(shù)據(jù)定義文件保存---------------------
procedure TMainForm.saveClick(Sender: TObject);
begin
  datamemo.Lines.SaveToFile(getfilename);
end;

//----------------------打開數(shù)據(jù)定義文件處理-----------------
procedure TMainForm.fileopenClick(Sender: TObject);
begin
  stop_comm;
  if (true=open1.Execute) then getfilename := open1.FileName
     else exit;
  mainform.Caption := companyname+'----'+getfilename;
  system_init;
end;

//----------------------接收定時(shí)處理-------------------------
procedure TMainForm.revtimerTimer(Sender: TObject); //接收數(shù)據(jù)
var
   a,b:integer;
   j:char;
   FirstString:String; //':'數(shù)據(jù)包頭標(biāo)識(shí)
   SecondString:String;//兩字節(jié)板地址
   TemStr:String;
begin
  timeoutcount := timeoutcount + 1;

  if (Uppercase(econfile.comm.mode)='ASCII') then
  begin
       if timeoutcount>timerout1.Interval+10 then
       begin
         timerout1.Enabled := TRUE;
         timeoutcount := 0;
       end;

       TemStr := Vacomm1.ReadText;
       receiveString := receiveString+ TemStr;

       a := Pos(':',receiveString); // 找出冒號(hào)的位置
       if (a>1) then Delete(receiveString,1,a-1); // 刪除冒號(hào)以前的字符
       FirstString := Copy(receiveString,1,1);

       b := Pos(#13#10,receiveString); // 找結(jié)束符
       if (b=0) then exit;

       timerout1.Enabled := TRUE;
       sendtimer.Enabled := TRUE;
       for a:=2 To b-1 do //檢查出錯(cuò)幀
       begin
           SecondString := Copy(receiveString,a,1);
           if not((SecondString[1] in ['0'..'9'])or( SecondString[1]
                 in ['a'..'f'])or( SecondString[1] in ['A'..'F']))then
           begin
             Delete(receiveString,1,b+1);
             exit;
           end;
       end;
       temstr := copy(receivestring,1,b+1);
       delete(receivestring,1,b+1);

       revmemo.Lines.text := revmemo.Lines.text+temstr;
       if (revmemo.Lines.count>20) then
       begin
         revmemo.lines.clear;
         revmemo.lines.add('接收數(shù)據(jù)');
       end;

       framecheck;
       asclltoapp(temstr,econfile);
       app_analys(econfile);

  end;//if ascii mode

  if (Uppercase(econfile.comm.mode)='RTU') then
  begin
    if timeoutcount>=(13*1000/econfile.comm.baudrate) then
    begin
      if (framecheck = 0)and(read_index>0) then
      begin
        for a:=0 to read_index-1 do econfile.analysbuffer[a+1]:=revbuff[a];
        app_analys(econfile);
        for a:=0 to 1024 do revbuff[a]:=0;

        //timerout1.Enabled := false;
        sendtimer.Enabled := TRUE;
        poll_count := 0;
        revtimer.Enabled := False;
        //timeoutcount := 0;
        revmemo.Lines.Text := revmemo.Lines.Text+#13;

        if (revmemo.Lines.count>20) then
        begin
          revmemo.lines.clear;
          revmemo.lines.add('接收數(shù)據(jù)');
        end;
      end
      else
      begin
        timerout1.Enabled := TRUE;
      end;
    end;
  end;
end;

//----------------------發(fā)送定時(shí)處理-------------------------
procedure TMainForm.sendtimerTimer(Sender: TObject);
var
  temp: string;
  i: integer;
  j: integer;
  sendbuff: array[1..8]of byte;
  sendstring: string;
begin
  //if (UpperCase(econfile.comm.mode)='RTU') then
  //begin

  poll_count := poll_count+1;
  if (poll_count<=econfile.comm.timepoll) then exit;
  //end;

  timerout1.Enabled := true; //發(fā)送開始計(jì)數(shù)

  {i := 0;
  while (econfile.comm.sendbuffer2.buffer[econfile.comm.sendbuffer2.index]='') do
  begin
      i := i+1;
      if i > 50  then
      begin
        break;  // 無插入幀,跳出循環(huán)
      end;
      econfile.comm.sendbuffer2.index := (econfile.comm.sendbuffer2.index + 1) mod 50  ;
  end;

    // 如果無插入幀則發(fā)正常幀數(shù)據(jù)
  if (econfile.comm.sendbuffer2.buffer[econfile.comm.sendbuffer2.index]='') then
  begin
      while (econfile.comm.sendbuffer1.buffer[econfile.comm.sendbuffer1.index]='') do
      begin
        econfile.comm.sendbuffer1.index := (econfile.comm.sendbuffer1.index + 1) mod 50 ;
      end;
      econfile.comm.sendbuffer := econfile.comm.sendbuffer1.buffer[econfile.comm.sendbuffer1.index];
      econfile.comm.sendbuffer1.index := (econfile.comm.sendbuffer1.index + 1) mod 50  ;
    end
    else
    begin
      econfile.comm.sendbuffer := econfile.comm.sendbuffer2.buffer[econfile.comm.sendbuffer2.index];
      econfile.comm.sendbuffer2.buffer[econfile.comm.sendbuffer2.index] := ''; //送入發(fā)送區(qū)后刪除插入值
      econfile.comm.sendbuffer2.index := (econfile.comm.sendbuffer2.index + 1) mod 50  ;
  end;}

  if (econfile.comm.sendbuffer3<>'') then
  begin
    econfile.comm.sendbuffer := econfile.comm.sendbuffer3;
    econfile.comm.sendbuffer3 := '';
  end
  else
  if (econfile.comm.sendbuffer4<>'') then
  begin
    econfile.comm.sendbuffer := econfile.comm.sendbuffer4;
    econfile.comm.sendbuffer4 := '';
  end
  else
  begin
    if (econfile.comm.sendbuffer2.buffer[econfile.comm.sendbuffer2.index]='') then
    begin
      i := 0;
      while (econfile.comm.sendbuffer2.buffer[econfile.comm.sendbuffer2.index]='') do
      begin
         if (i=50)  then break;
         econfile.comm.sendbuffer2.index := (econfile.comm.sendbuffer2.index + 1) mod 50 ;
         i := i+1;
      end; //search a true frame ready to send

      while (econfile.comm.sendbuffer1.buffer[econfile.comm.sendbuffer1.index]='') do
      begin
         econfile.comm.sendbuffer1.index := (econfile.comm.sendbuffer1.index + 1) mod 50 ;
      end;
      econfile.comm.sendbuffer := econfile.comm.sendbuffer1.buffer[econfile.comm.sendbuffer1.index];
      econfile.comm.sendbuffer1.index := (econfile.comm.sendbuffer1.index + 1) mod 50 ;
    end
    else
    begin
      sendflag1 := not sendflag1;
      if (sendflag1) then
      begin
        econfile.comm.sendbuffer := econfile.comm.sendbuffer2.buffer[econfile.comm.sendbuffer2.index];
        econfile.comm.sendbuffer2.buffer[econfile.comm.sendbuffer2.index] := ''; //送入發(fā)送區(qū)后刪除插入值
        econfile.comm.sendbuffer2.index := (econfile.comm.sendbuffer2.index + 1) mod 50 ;
      end
      else
      begin
        while (econfile.comm.sendbuffer1.buffer[econfile.comm.sendbuffer1.index]='') do
        begin
          econfile.comm.sendbuffer1.index := (econfile.comm.sendbuffer1.index + 1) mod 50 ;
        end;
        econfile.comm.sendbuffer := econfile.comm.sendbuffer1.buffer[econfile.comm.sendbuffer1.index];
        econfile.comm.sendbuffer1.index := (econfile.comm.sendbuffer1.index + 1) mod 50 ;
      end;
    end;
  end;

  if (UpperCase(econfile.comm.mode)='RTU') then
  begin
    sendbuff[1] := econfile.comm.rtuaddress;
    sendbuff[2] := strtohex1(copy(econfile.comm.sendbuffer,1,2),2);
    beginaddress := strtohex1(copy(econfile.comm.sendbuffer,3,4),4);
    sendbuff[3] := beginaddress div 256;
    sendbuff[4] := beginaddress mod 256;

    if (sendbuff[2]=$1) then
    begin
      readcoilcount := strtohex1(copy(econfile.comm.sendbuffer,7,4),4);
    end;
    if (sendbuff[2]=$2) then
    begin
      readinputcount := strtohex1(copy(econfile.comm.sendbuffer,7,4),4);
    end;
    if (sendbuff[2]=$5) then
    begin
      //addsendbuffer2(econfile,'01'+inttohex(beginaddress,4)+'0001');
    end;
    if (sendbuff[2]=$18) then
    begin
      j := crc(sendbuff[1],4);
      sendbuff[5] := j div 256;
      sendbuff[6] := j mod 256;
      temp := '';
      for j:=1 to 6 do temp := temp + inttohex(sendbuff[j],2);
      Vacomm1.WriteBuf(sendbuff,6);
    end
    else
    begin
      sendbuff[5] := strtohex1(copy(econfile.comm.sendbuffer,7,4),4)div 256;
      sendbuff[6] := strtohex1(copy(econfile.comm.sendbuffer,7,4),4)mod 256;
      j := crc(sendbuff[1],6);
      sendbuff[7] := j div 256;
      sendbuff[8] := j mod 256;
      temp := '';
      for j:=1 to 8 do temp := temp + inttohex(sendbuff[j],2);
      Vacomm1.WriteBuf(sendbuff,8);
    end;

    sendmemo.Lines.Add(temp);
    if sendmemo.lines.count>20 then
    begin
        sendmemo.lines.clear;
        sendmemo.lines.Add('發(fā)送數(shù)據(jù)');
    end;
  end;

  if (UpperCase(econfile.comm.mode)='ASCII') then
  begin
    sendstring := inttohex(econfile.comm.rtuaddress,2);
    beginaddress := strtohex1(copy(econfile.comm.sendbuffer,3,4),4);
    i := strtohex1(copy(econfile.comm.sendbuffer,1,2),2);
    if (i=1) then
    begin
      readcoilcount := strtohex1(copy(econfile.comm.sendbuffer,7,4),4);
    end;

    if (i=2) then
    begin
      readinputcount := strtohex1(copy(econfile.comm.sendbuffer,7,4),4);
    end;

    if (i=5) then
    begin
      //addsendbuffer2(econfile,'01'+inttohex(beginaddress,4)+'0001');
    end;

    sendstring := sendstring + econfile.comm.sendbuffer;
    sendstring := sendstring + lrc(sendstring);
    begin
       vacomm1.WriteText(':'+sendstring+#13#10);
       sendmemo.Lines.Add(':'+sendstring+#13);
       if (sendmemo.lines.count>20) then
         begin
           sendmemo.lines.clear;
           sendmemo.lines.Add('發(fā)送數(shù)據(jù)');
         end;
     end
  end;

  sendtimer.Enabled := False;
  poll_count := 0;
  revtimer.Enabled := True;
  timeoutcount := 0;
  read_index := 0;
end;


//----------------------通訊開啟控制-------------------------
procedure TMainForm.m_comcontrolClick(Sender: TObject);
begin
  if (not comm_status) then
  begin
    if  (econfile.comm.timeout <= 1.5*econfile.comm.timepoll) then
    begin
      showmessage('超時(shí)時(shí)間應(yīng)大于1.5倍發(fā)送幀間隔時(shí)間,請(qǐng)修改');
      exit;
    end
    else
    start_comm;//開始通訊
  end
  else
  begin
    stop_comm;//關(guān)閉通訊
  end;

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
aaa亚洲精品| 亚洲三级电影网站| 欧美影片第一页| 日本不卡1234视频| 亚洲精品欧美在线| 亚洲视频免费在线| 亚洲va在线va天堂| 亚洲成av人片在线观看无码| 日本大胆欧美人术艺术动态| 一区二区三区在线看| 亚洲色图另类专区| 偷拍日韩校园综合在线| 亚洲r级在线视频| 粉嫩aⅴ一区二区三区四区五区| 国产精品自拍网站| 99久久精品免费观看| 一本一本大道香蕉久在线精品| 国产精品18久久久久久久网站| 色屁屁一区二区| 精品女同一区二区| 中文一区在线播放| 最近中文字幕一区二区三区| 日韩av不卡一区二区| 97久久精品人人澡人人爽| 日韩欧美在线综合网| 国产午夜精品理论片a级大结局| 国产校园另类小说区| 午夜欧美在线一二页| 色婷婷综合久久久中文一区二区| 亚洲精品在线观看网站| 成人欧美一区二区三区小说| 亚洲成a人v欧美综合天堂| 成人国产亚洲欧美成人综合网| 在线免费视频一区二区| 久久久久久**毛片大全| 亚洲精品ww久久久久久p站| 懂色av噜噜一区二区三区av| 久久久九九九九| 国产精品伊人色| 国产婷婷精品av在线| 懂色av一区二区夜夜嗨| 中文字幕视频一区二区三区久| 国产伦精品一区二区三区视频青涩 | 欧美一区二区在线视频| 最新热久久免费视频| 99国产精品久久久久久久久久久 | 一区二区三区欧美日| 在线免费av一区| 午夜精品123| 日韩精品一区二区在线观看| 一区二区三区免费网站| 在线免费观看一区| 日本亚洲最大的色成网站www| 91精品国产91综合久久蜜臀| 久久超碰97中文字幕| 欧美精品在线一区二区| 国产精品色在线观看| 久久国产精品免费| 久久精品综合网| av在线不卡观看免费观看| 亚洲午夜精品17c| 国产麻豆一精品一av一免费| 亚洲欧洲成人自拍| 欧美性xxxxx极品少妇| 男女性色大片免费观看一区二区| 久久久欧美精品sm网站 | 成人福利视频在线| 亚洲国产日日夜夜| 国产日韩影视精品| 成人精品亚洲人成在线| 日本一区二区免费在线观看视频 | 色狠狠综合天天综合综合| 亚洲精品videosex极品| 久久品道一品道久久精品| 欧美综合在线视频| 成人免费视频国产在线观看| 欧美aaa在线| 亚洲男人的天堂一区二区| 欧美探花视频资源| 日本高清视频一区二区| 国产在线精品一区在线观看麻豆| 欧美精品一区二区三区四区| 欧美性猛片aaaaaaa做受| 成人免费视频视频在线观看免费| 美日韩一级片在线观看| 日本一区二区三区国色天香| 欧美成人三级在线| 欧美白人最猛性xxxxx69交| 欧美卡1卡2卡| 欧美理论在线播放| 欧美伦理电影网| 51久久夜色精品国产麻豆| 国产不卡高清在线观看视频| 精品亚洲aⅴ乱码一区二区三区| 中文字幕中文字幕一区二区| 91精品国产高清一区二区三区| 欧美午夜精品一区| 欧美一区二区免费视频| 51精品秘密在线观看| 日韩欧美中文字幕公布| 亚洲精品一区二区三区影院| 久久久国产精品不卡| 国产欧美一区二区精品性色| 国产亚洲欧美日韩在线一区| 国产欧美一区二区精品性色| 国产精品毛片高清在线完整版 | 亚洲图片有声小说| 免费成人在线播放| 国产91精品欧美| 日本电影欧美片| 精品日本一线二线三线不卡| 久久久久久久久99精品| 中文字幕色av一区二区三区| 一区二区三区国产| 国内欧美视频一区二区| 色综合天天性综合| 狠狠色丁香婷婷综合| 成人午夜av在线| 91精品国产一区二区人妖| 国产日韩精品视频一区| 天天综合色天天| 国产成人在线观看| 国产成人精品三级| 3d成人动漫网站| 亚洲伦理在线精品| 国产一区二区三区四| 欧美日韩不卡在线| 欧美久久久久中文字幕| 久久看人人爽人人| 日本欧美一区二区三区乱码| av电影在线观看一区| 国产日产亚洲精品系列| 蜜桃av一区二区三区| 色狠狠色狠狠综合| 亚洲人吸女人奶水| 成人性视频免费网站| 国产欧美一二三区| 精品亚洲porn| 日韩你懂的电影在线观看| 亚洲成人动漫精品| 欧美日韩在线三级| 国产欧美日韩激情| 国产不卡视频在线播放| 国产午夜精品一区二区三区视频| 精品一区二区在线播放| 精品国产伦一区二区三区免费 | 亚洲欧洲日韩女同| www.欧美亚洲| 亚洲日韩欧美一区二区在线| 成人app软件下载大全免费| 中文字幕第一区综合| 风间由美性色一区二区三区| 久久久久国产精品人| 国产999精品久久久久久绿帽| 久久精品视频在线看| 成人免费毛片a| 一区二区三区在线播放| 欧美日韩二区三区| 毛片基地黄久久久久久天堂| 日韩欧美国产三级电影视频| 国产精品一区专区| 亚洲男人的天堂在线aⅴ视频 | 日韩高清一区在线| 国产欧美一区二区精品性色| 97国产一区二区| 午夜国产精品一区| 国产欧美精品国产国产专区 | 亚洲自拍都市欧美小说| 成人黄页在线观看| 一区二区三区在线观看欧美| 6080日韩午夜伦伦午夜伦| 国产91精品欧美| 婷婷国产在线综合| 国产情人综合久久777777| 欧美三级日韩在线| 国产成人免费高清| 亚洲国产sm捆绑调教视频| 久久久久久麻豆| 精品视频一区三区九区| 国产麻豆91精品| 奇米影视一区二区三区| 亚洲乱码国产乱码精品精98午夜| 日韩一区二区三区视频在线观看| 99久久精品情趣| 国产精品伊人色| 免费亚洲电影在线| 亚洲综合成人在线| 日韩伦理av电影| 久久久电影一区二区三区| 91麻豆精品国产自产在线 | 午夜精品久久久| 亚洲欧美一区二区三区国产精品| 欧美xxxx在线观看| 91麻豆精品国产自产在线| 欧美日韩一区二区在线观看视频 | 国产精品私房写真福利视频| 日韩欧美中文字幕公布| 777午夜精品免费视频| 欧美色老头old∨ideo| 亚洲色图制服丝袜|