Delphi (ComPortLib) で、 KEYENCE KV シリアル通信
KVモード(上位リンク)で、パソコンと通信します。PLC側のプログラムは一切必要ありません。
内蔵シリアルポート(RS232C)は、モジュラーソケットなので、電話用のモジュラーケーブル(テレホンコード:6極4芯)に、
D-sub9S(ソケット)を接続し、パソコンのRS-232Cポートにつなぎます。
通信設定は、KV-Studio のユニット設定と合わせます。
テスト用アプリ
KV-Studio のトレースモニタのスクリーンショット
unit KvNanoRSUnit; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, CPort; type TForm3 = class(TForm) ComPort1: TComPort; Button1: TButton; Edit1: TEdit; Edit2: TEdit; procedure Button1Click(Sender: TObject); private { Private 宣言 } public { Public 宣言 } end; var Form3: TForm3; implementation {$R *.dfm} procedure TForm3.Button1Click(Sender: TObject); const CR = #$0D; var s, res : string; begin with ComPort1 do begin Port := 'COM5'; BaudRate := br19200; Parity.Bits := prEven; StopBits := sbOneStopBit; DataBits := dbEight; Timeouts.ReadInterval := -1; Timeouts.ReadTotalConstant := 500; Timeouts.WriteTotalConstant := 500; Open; if Connected then begin try // 通信開始コマンド(CR)の送信 WriteStr('CR' + CR); ReadStr(res, 256); if Trim(res) = 'CC' then begin // DM 書き込み s := 'WR DM200.S 1234' + CR; WriteStr(s); // レスポンスの受信 ReadStr(res, 256); Edit1.Text := res; // DM 読み込み s := 'RD DM200.S' + CR; WriteStr(s); ReadStr(res, 256); Edit2.Text := res; // 通信終了コマンド(CQ)の送信 WriteStr('CQ' + CR); ReadStr(res, 256); if Trim(res) = 'CF' then ShowMessage('通信正常終了'); end; finally Close; end; end; end; end; end.