2

数日間、通信ライブラリとして libnodave を使用して、Siemens の S7-1200 PLC (CPU 1214C) と通信しようとしました。libnodave ライブラリには、いくつかの機能が用意されています。Delphi アプリケーションは動作しており、Windows 実行可能ファイルも動作しています。

Vmware で Linux を実行しており、testISO_TCP のプリコンパイル済みバイナリが動作しています。使えそうですよね?

daveInterface * di;
daveConnection * dc;
_daveOSserialType fds;
ds.rfd=openSocket(102, "192.168.0.1");
fds.wfd=fds.rfd;
if (fds.rfd>0) {
    di =daveNewInterface(fds,"IF1",0, daveProtoISOTCP, daveSpeed187k);
    daveSetTimeout(di,5000000);
    dc =daveNewConnection(di,0,0,1);  // insert your rack and slot here
    if (0==daveConnectPLC(dc)) 
    {
       printf("Connected..\n");
    }
}

しかし、ソース コードを 1:1 で IDE (Eclipse) にコピーすると、次のエラー メッセージが表示されます。

IF1 error in daveConnectPLC() step 1. retrying...IF1 error in daveConnectPLC() step 1. retrying...IF1 error in daveConnectPLC() step 1. retrying...Couldn't connect to PLC.
Please make sure you use the -2 option with a CP243 but not with CPs 343 or 443.

PLCとの接続でエラーが発生したようです。次の関数は、このエラーを生成します。

DaveConnectPLC(dc)

Linux で実行されたバイナリと比較すると、ラックとスロットは変更されていないことに注意してください。

Eclipse IDEで動作させるのを手伝ってくれる人はいますか? すべての実行可能ファイル/バイナリが機能しているのは非常に奇妙ですが、IDE から直接実行したい場合はそうではありません。

前もって感謝します。

4

1 に答える 1