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.