0

私は再びここに来て、新しい質問をします。今回はPLCについて。

私は最初に、私は PLC の初心者であり、数か月前まで PLC を見たことがありませんでした。SQL Server データベースにアーカイブするために、PLC Siemens S7-300 からデータを Delphi から読み取るプログラムを作成するように依頼されました。「libnodave」ライブラリを使用しています。

プログラムは非常に単純です。ビットを確認する必要があり、オンになっている場合は、PLC からデータを読み取ってビットをオフにする必要があります。私が言ったライブラリでは、問題なく読み書きできますが、読み取る必要があるデータはバイトのグループ (約 60 バイト) に格納されているため、いくつかのバイトを読み取り、他のバイトをスキップして読み取る必要があります。その他のバイト。さらに、テストする必要があるビットは、このバイト グループの末尾にあります。

そのため、バイトのグループ全体を読み取り、データを変数のグループに入れ、ビットをテストし、オンの場合はデータをデータベースに保存します。読む必要のないバイトをスキップするために、次のようなステートメントを使用します。

for i := 1 to 14 do
    daveGetU8(dc);
for i := 1 to 6 do
    daveGetU16(dc);

私の質問は次のとおりです。

  • 読む必要のないデータをスキップしてデータを読むより良い方法はありますか?
  • バイトのグループ全体を読み取り、ビットをテストした後に便利ですか、それとも 2 つの読み取りを別々にする方がよいですか?

これは、インターネットで読み取り操作に時間がかかることがわかったため、最小限の読み取り回数を可能にすることをお勧めします。

エロス

4

1 に答える 1