北海道の制御屋です。PLC/HMI(MITSUBISHI,OMRON,KEYENCE and OTHERS) 全国何処へでも伺います。

三菱・OMRON・KEYENCEのIEC61131-3比べ

IEC61131-3の文献を途中まで読んで気になったので三菱電機、OMRON、KEYENCEの3社で比べてみました。

三菱電機はGX-WORKS3 1.095Z/OMRONはCX-Programmer Ver9.80 / KEYENCEはKV STUDIO 11.62です。

とりあえず変数の型を調べてみました。

IEC61131-3の定義

IEC61131-3の定義は下記のようになっているようですね。(自分がよく使うものだけピックアップしています)

  • ブール型 → BOOL
  • 符号付き16ビット整数 → INT
  • 符号付き32ビット整数 → DINT
  • 符号なし16ビット整数 → UINT
  • 符号なし32ビット整数 → UDINT
  • 32ビット実数 → REAL
  • 64ビット実数 → LREAL
  • 16ビットのビット列 → WORD
  • 32ビットのビット列 → DWORD

三菱電機の選択肢

三菱電機は俺様感が満載されているって感じがしました。よりユーザーの事を考えているのかもしれません。

  • ブール型 → ビット
  • 符号付き16ビット整数 → ワード符号付き
  • 符号付き32ビット整数 → ダブルワード符号付き
  • 符号なし16ビット整数 → ワード符号なし?
  • 符号なし32ビット整数 → ダブルワード符号なし?
  • 32ビット実数 → 単精度実数
  • 64ビット実数 → 倍精度実数
  • 16ビットのビット列 → ワード符号なし?
  • 32ビットのビット列 → ダブルワード符号なし?

OMRONの選択肢

OMRONは一番IECに近いと感じました。ただ変数宣言は「内部」「入力」「出力」「入出力」「外部」でタブを切換えて登録しなければいけません。少し面倒に感じました。

  • ブール型 → BOOL
  • 符号付き16ビット整数 → INT
  • 符号付き32ビット整数 → DINT
  • 符号なし16ビット整数 → UINT
  • 符号なし32ビット整数 → UDINT
  • 32ビット実数 → REAL
  • 64ビット実数 → LREAL
  • 16ビットのビット列 → WORD
  • 32ビットのビット列 → DWORD

KEYENCEの選択肢

KEYENCEは一番少なかったですね。IECには完全に準拠していないと言っていたのでこれからなのかもしれません。

  • ブール型 → BOOL
  • 符号付き16ビット整数 → INT
  • 符号付き32ビット整数 → DINT
  • 符号なし16ビット整数 → UINT
  • 符号なし32ビット整数 → UDINT
  • 32ビット実数 → REAL
  • 64ビット実数 → LREAL
  • 16ビットのビット列 → UINTが該当?
  • 32ビットのビット列 → UDINTが該当?

今までは三菱電機を扱うことが多かったので力を注いでいましたが、今後は他のメーカーも調べてみようと思います。本当はSTでコードを作ってしまえば各社で動いてくれるのが理想なのですがそうもいかない理由があるのでしょうね。CODESYS等にも手を入れてみようと思っています。

補足

変数宣言で少し手間取りましたが、「三菱固有の命令を使っていない」かつ「四則演算」と「CASE/IF~THEN]しか使っていないST構文をKEYENCEに移植したら殆ど手直し無しで動いたことをご報告しておきますね。

Leave a Reply

Your email address will not be published. Required fields are marked *