⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 plccomm.~pas

📁 这是一个间歇的小唾弃,希望大家希望,以后大家多学习,多多交流共同进步
💻 ~PAS
字号:
unit PLCComm;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, OleCtrls, MSCommLib_TLB,Inifiles;

type
  TForm1 = class(TForm)
    GroupBox1: TGroupBox;
    Bevel1: TBevel;
    Label1: TLabel;
    cmbBaudRate: TComboBox;
    Label2: TLabel;
    cmbCheckout: TComboBox;
    Label3: TLabel;
    RadioGroup1: TRadioGroup;
    RB7: TRadioButton;
    RB8: TRadioButton;
    Label4: TLabel;
    GroupBox2: TGroupBox;
    RB1: TRadioButton;
    RB2: TRadioButton;
    btCancel: TButton;
    btOK: TButton;
    GroupBox3: TGroupBox;
    ShapeLight: TShape;
    Label5: TLabel;
    btStart: TButton;
    Label6: TLabel;
    MSComm1: TMSComm;
    Label7: TLabel;
    cmbCom: TComboBox;
    Label8: TLabel;
    Edit1: TEdit;
    Label9: TLabel;
    procedure btOKClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);

  private
    { Private declarations }
  public
    { Public declarations }

  end;

var
  Form1: TForm1;
  myinifile:Tinifile;
  procedure SetPatameter ;
implementation

{$R *.dfm}

procedure TForm1.btOKClick(Sender: TObject);
var
   numbit,stopbit:String;
begin
   if self.cmbBaudRate.Text ='' then showmessage('请设置波特率!');
   if self.cmbCheckout.Text ='' then showmessage('请设置奇偶校验!');
  // if not (self.RB7.Checked and self.RB8.Checked ) then showmessage('请设置数据位!');
   if RB7.Checked  then numbit:='7';
   if RB8.Checked then numbit:='8';
   if RB1.Checked then stopbit:='1';
   if RB2.Checked then stopbit:='2';

   myinifile.WriteString('通讯参数','波特率',cmbBaudRate.Text);
   myinifile.WriteString('通讯参数','奇偶校验',cmbCheckout.Text);
   myinifile.WriteString('通讯参数','数据位',numbit);
   myinifile.WriteString('通讯参数','停止位',stopbit);
   myinifile.WriteInteger('通讯参数','选择串口',cmbCom.ItemIndex+1);
   showmessage('通讯参数设置成功!');
end;
procedure SetPatameter ;
begin
    //
end;

procedure TForm1.FormCreate(Sender: TObject);
var
    FileName,strbaudrate, strCheckout,strnumbit,strstopbit:string;
    intcom:integer;
    str:string;
begin
    FileName:=ExtractFilePath(Paramstr(0))+'PlcParameter.ini';
    myinifile:=TiniFile.Create(FileName); //创建INI文件
    //注意:这段初始化的代码,要写在一个过程中,以便调用
    //初始化参数设置区
    strbaudrate:=myinifile.ReadString('通讯参数','波特率','cmbBaudRate.Text');
    strCheckout:=myinifile.ReadString('通讯参数','奇偶校验','cmbCheckout.text');
    strnumbit:=myinifile.ReadString('通讯参数','数据位','numbit');
    strstopbit:=myinifile.ReadString('通讯参数','停止位','stopbit');
    intcom:=myinifile.ReadInteger('通讯参数','选择串口',0);

    cmbBaudRate.Text :=strbaudrate;
    cmbCheckout.Text :=strcheckout;
    cmbCom.ItemIndex  :=intCom-1;
    if strnumbit='8' then  RB8.Checked:=true;
    if strnumbit='7' then  RB7.Checked :=true;
    if strstopbit='1' then RB1.Checked:=true;
    if strstopbit='2' then RB2.Checked:=true ;
    //串口初始化
   // str:='strbaudrate,n,strcheckout,strnumbit,strstopbit';
    if self.MSComm1.PortOpen then self.MSComm1.PortOpen :=false;
    MSComm1.CommPort :=intcom;  //设置选择的串口
    MSComm1.Settings :='9600,n,8,1';
    MSComm1.InBufferSize :=1024;//设定接受队列长度为1KB
    MSComm1.OutBufferSize :=1024;//设定发送队列长度为1KB
    MSComm1.InputLen  :=0;// 读取整个接受缓冲区的内容
    MSComm1.InBufferCount :=0;//清除缓冲区内容
    MSComm1.RThreshold :=1;//每接受一个字符就产生一个ONCOMM事件
    MSComm1.InputMode :=comInputModeBinary;//串口以二进制形式收发数据
    MSComm1.PortOpen :=true;//打开串口

end;
end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -