シーメンス#Serialize,Deserialize

今回はSerializeとDeserializeの機能について紹介します。Siemensがかなり構造体と配列でプログラミングをするには勧めてる?らしくて、この2つの命令を使ってたら構造体の変数を配列に一括転送(Serialize)と配列を一括に構造体に転送する(Deserialize)を実現することができます。使え道が色々がありまして、例えば他のFieldBusと通信するとき、ですね。

準備

まずFBを作ります。そして転送用の構造体データstatData1を作ります。(PLC user data typeもできますが、ちょっとめんとくさいのでStructにしました。)

そしてもうひとつを複製します。

最後は転送用の配列を作ります。ここは長さをきにせずに多めに定義します。

Serialize

Serializeは、データを配列に転送するためのFunctionです。

  • SRC_VARIABLE
    • すべてのデータタイプの変数
    • 転送元
  • POS:
    • DINTです。
    • 転送先の配列がデータ最初に格納するElementのIndexです。
  • RET_VAL
    • INT
    • Functionの実行結果です。
  • DEST_ARRAY
    • 転送先の配列

実装

ここに、statData1のデータをbarrayの配列に転送します。posは0なのでbarrayの0からデータを格納することになります。

結果

w1は1234なのでbarrayの0,1が12と34になります。

b16は0番と2番がOnになると1+4=5、なのでByte6は5になります。

Deserialize

Deserializeは、配列データを他のTypeの変数に転送するためのFunctionです。

  • SRC_VARIABLE
    • 配列
    • 転送元
  • POS:
    • DINTです。
    • 転送先の配列がデータ最初に格納するElementのIndexです。
  • RET_VAL
    • INT
    • Functionの実行結果です。
  • DEST_ARRAY
    • 転送先の変数

実装

ここに、データをbarrayの配列をstatData2へ転送します。posは0なのでbarrayの0からデータを転送することになります。

結果

みんなさんもおわかりのように、statData2の各変数を配列から綺麗に転送されています。

はーい、お疲れ様です。

Footer_Basic

Please Support some devices for my blog

Amazon Gift List

Find ME

Twitter:@3threes2
Email:soup01threes*gmail.com (* to @)
YoutubeChannel:https://www.youtube.com/channel/UCQ3CHGAIXZAbeOC_9mjQiWQ

シェアする

  • このエントリーをはてなブックマークに追加

フォローする