私は再びここに来て、新しい質問をします。今回は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 つの読み取りを別々にする方がよいですか?
これは、インターネットで読み取り操作に時間がかかることがわかったため、最小限の読み取り回数を可能にすることをお勧めします。
エロス