レジスタOperation APIは、LUAが読み書きするデータの完全なプロパティです。set/getシリーズはすべてのデータ型をカバーし、set_bitはビットを処理し、set_arrayはバッチ書き込みを行います。主なメカニズムを覚えなさい。get_xxxはすべてHMIローカルキャッシュ(メモリイメージ)から読み取り、シリアルフレームを送信しません。Communicationコストゼロ。
1.読み取りメカニズム(重要)
get_xxxファミリ関数PLCへのリアルタイム要求なし。HMIバックグラウンドタスクは、PLCから通信変数(Modbusの3 x/4 xなど)を自動的に読み取り、エンジニアリング設定のポーリングサイクルに応じてキャッシュします。利点は、スクリプトロジックがCommunicationの嵐を避けることです。1万回取得してもバスを吹き飛ばすことはありません。
2. APIの概要
| 関数の機能 | スコープ/説明 | アドレススパン |
|---|---|---|
set_bit(vtype,addr,value,count) | 低 countビットはaddrから連続ビット(count 1~16)に対応します。get_bitは0/1を返します。 | 1 |
set/get_uint16 | 0~65535、オーバーレンジカットオフ0xFFFF | 1 |
set/get_int16 | -32768~+32767 | 1 |
set/get_uint32 | 0~4294967295 | +2 |
set/get_int32 | -2^31~2^31-1 | +2 |
set/get_uint64 | 0~2^64-1 | +4 |
set/get_int64 | -2^63~2^63-1 | +4 |
set/get_float | IEEE 75 4単精度 | +2 |
set/get_double | IEEE 75 4倍精度 | +4 |
set_string(vtype,addr,str) | 最大 2Kバイト、UTF-8/GBK;get_stringデフォルト128バイト最大 2048、切り舍て | 長さで。 |
set_uint16_ex(vtype,addr,v1,...,vN) | 最大120個のレジスタを一括書き込み | N |
set_array(vtype,addr,buff) | 最大120ワードのLuaテーブル(ワードの配列)を受け取ります。 | N |
3. vtype値プロトコルによって変更
| 定数は | 意味の意味 |
|---|---|
| VT_0x | コイルコイルコイル |
| VT_1x | 入力する。 |
| VT_M | FX3U 内部リレー |
| VT_3x | 入力レジスタ。 |
| VT_4x | レジスタを保持する。 |
| VT_D | FX3U Dレジスタ |
| VT_LW | 内部変数パワーダウンは保存されない |
| VT_RW | パワーダウン保存エリア |
4.データレプリケーションのケース(12の共通パターン)
最も一般的な要件:外部からLWにデータを書き込む、スクリプトを別のアドレスに移動する、フォーマットを変換する。ルーチンはon_updateでvtype== VT_LWとソースアドレスを判断し、get readとset to writeターゲットを使用します:
function on_update slave vtype
if vtype ==_LW then
addr === 0 x 1000の場合
set_uint16_LW、0x1001、get_uint16_LW、0x1000 Uint16コピー。
elseif addr == 0 x 1004 then
set_uint32_LW、0x1006、get_uint32_LW、0x1004 --uint 32(スパン+2)
elseif addr === 0 x 101 C
set_float_LW、0x101E、get_float_LW、0x101C --floatスパン+2
elseif addr === 0 x 1030 then
set_string VT_LW 0x1040 get_string VT_LW 0x1030 16--stringスパン16
End of Endシングル
End of Endシングル
End of Endシングル
バッチ書き込み:addr== 0 x 1050で値が偶数の場合に10個のレジスタを書き込む
function on_update slave vtype
もしvtype == VT_LWとaddr == 0 x 1050の場合
local v = get_uint16 VT_LW、0x1050
V % 2 == 0の場合
set_uint16_ex VT_LW 0x1060 1 2 3 4 5 6 7 8 9 10
- または-
set_array VT_LW 0 x 10 60 {10 20 30 40 50 60 70 80 90 100}
End of Endシングル
End of Endシングル
End of Endシングル広州大彩科技Visual HMI開発ドキュメント(hmi-doc.gz-dc.com)LUAチュートリアル“レジスタOperation”、著作権は大彩科技に帰属します。
Leave a Reply