アーティクル - CS333015

文字列での Siemens S5 バイト スワッピング

修正日: 23-Dec-2022   


注記:ここに記載されている情報は、お客様の利便性向上のため機械翻訳ソフトを使用しています。PTCは、ここに記載されている情報の翻訳の正確性について、一切の責任を負いませんので、ご了承ください。英語の原文を参照するには、こちら。この機械翻訳に関する詳細は、こちら。
お知らせいただき、ありがとうございます。この機械翻訳をレビューします。

適用対象

  • Kepware Server (formerly KEPServerEX) 5.19.467.0 to 6.8
  • ThingWorx Kepware Server (legacy) 8.0 to 8.4

説明

KEPServerEX V5.15 では、Siemens S5 ドライバーが強化され、String データ型のバイト スワップがサポートされるようになりました。文字列の長さは 2 ~ 254 文字 (バイト) です。すべての文字列は HiLo バイト順であると想定されます。つまり、各レジスタ (長さ 2 バイト) には 2 文字が存在する可能性があります。奇数の文字列長が使用されている場合、または奇数の文字が文字列に書き込まれ、不適切なバイト順序が使用されている場合、問題が発生する可能性があります。例えば、アドレスが「DB1:KS0.5H」で値が「AFTER」と書かれたタグがあるとします。ユーザーが「DB1:KS0.5L」のアドレスを持つタグからそれを読み取ると、「FAET」の値が表示されます。これは、タグが DB1 レジスタ 0、1、および 2 を消費しているためです。3 つのレジスタに格納されている実際の値は 0x414651455200 です。文字列の最後のバイトは、Null (0x00) である文字列ターミネータです。バイト オーダーがスワップされると、レジスタは基本的に 0x464145540052 の値を持つものとして表示されます。タグ値を更新すると、ドライバーは null 値で停止します。これは、印刷できない文字が文字列に含まれている場合にも発生します。 PLC プログラマは、制御文字 (0x01 ~ 0x1F) または拡張文字 (0xA0 ~ 0xFF) を、文字列の一部として読み取られるレジスタに含めないようにする必要があります。
最新バージョンはこちらを参照ください CS333015