IEC 61131-3は、プログラマブルロジックコントローラに関する国際規格IEC 61131の第3部(全10部)です。1993年12月にIECによって初版が発行されました[ 1 ]。現在の第4版は2025年5月に発行されました[ 2 ]。
IEC 61131のパート3は、PLC内の制御プログラムの基本ソフトウェアアーキテクチャとプログラミング言語を扱っています。3つのグラフィカルプログラミング言語規格と2つのテキストプログラミング言語規格が定義されています。
データ型
基本データ型(基本)
- ビット文字列 – オン/オフ値のグループ
- BOOL - 1ビット (0,1)
- バイト – 8ビット(1バイト)
- WORD – 16ビット(2バイト)
- DWORD – 32ビット(4バイト)
- LWORD – 64ビット(8バイト)
- INTEGER – 整数(バイトサイズを8ビットとした場合)
- SINT – 符号付き短整数(1バイト)
- INT – 符号付き整数(2バイト)
- DINT – 符号付き倍精度整数(4バイト)
- LINT – 符号付き長整数(8バイト)
- USINT – 符号なし短整数(1バイト)
- UINT – 符号なし整数(2バイト)
- UDINT – 符号なし倍精度整数(4バイト)
- ULINT – 符号なし長整数(8バイト)
- REAL – 浮動小数点 IEC 60559 ( IEEE 754-2008と同じ)
- 実数 – (4バイト)
- LREAL – (8バイト)
基本データ型(日付と時刻)
期間リテラル| ユニット | 説明 |
|---|
| d | 日 |
| h | 時間 |
| メートル | 分 |
| s | 2番 |
| MS | ミリ秒 |
| 私たち | マイクロ秒 |
| ns | ナノ秒 |
- 期間[ 3 ]
- TIME – (実装者固有)。T#5m90s15ms のような形式のリテラル
- LTIME – (8バイト)。リテラルはT#5m90s15ms542us15nsの形式でナノ秒単位まで拡張されます。
- 日付
- DATE – カレンダーの日付(実装者固有)
- LDATE – カレンダーの日付(8バイト、1970年1月1日からのナノ秒、1日の倍数に制限)
- 時刻
- TIME_OF_DAY / TOD – クロック時間(実装者固有)
- LTIME_OF_DAY / LTOD – 時刻(8バイト)
- 日付と時刻
- DATE_AND_TIME / DT – 時刻と日付(実装者固有)
- LDATE_AND_TIME / LDT – 時刻と日付(8バイト、1970年1月1日からのナノ秒)
基本データ型(文字/文字列)
STRINGエスケープシーケンス| エスケープシーケンス | 生産する |
|---|
| $$ | $ |
| $' | ' |
| $L | 改行 |
| $N | 改行 |
| $P | ページ(フォームフィード) |
| $R | 戻る |
| $T | タブ |
| $xx | 16進数値 |
- 既存
- CHAR – シングルバイト文字(1バイト、ISO/IEC 10646の文字0~255に限定)
- WCHAR – 2バイト文字(2バイト、ISO/IEC 10646の0~65535の文字に限定)
- STRING – 可変長のシングルバイト文字列。リテラルはシングルクォーテーションで囲んで指定します(例:'This is a STRING Literal')。
- WSTRING – 可変長の2バイト文字列。リテラルは二重引用符で囲んで指定します(例:"This is a WSTRING Literal")。
- 標準バージョン4の新機能
- UCHAR – UTF-8に従ってエンコードされた単一文字
- USTRING - 各文字がUTF-8に従ってエンコードされた可変長文字列
汎用データ型
システム定義のプログラム組織単位(POU、下記参照)の入力/出力/入出力変数にのみ使用可能
- どれでも
- 任意派生
- 任意のエレメンタリー
- 任意の大きさ
- 任意の数値
- 任意の実数: LREAL、REAL
- 任意の整数
- ANY_UNSIGNED: ULINT、UDINT、UINT、USINT
- ANY_SIGNED: LINT、DINT、INT、SINT
- 任意の期間: TIME、LTIME
- ANY_BIT: LWORD、DWORD、WORD、BYTE、BOOL
- 任意の文字
- 任意の文字列: 文字列、W文字列
- ANY_CHAR: CHAR、WCHAR
- ANY_DATE: 日付と時刻 (DT)、日付と時刻 (LDT)、日付、時刻 (TOD)、日時 (LTOD)
ユーザー定義データ型
- 列挙データ型
- 名前付き値を持つ列挙データ型
- サブ範囲データ型 – 値に制限を設定します。例:現在の値の場合はINT(4 .. 20)
- 配列データ型 - 複数の値が同じ変数に格納されます。
- 構造化データ型 - 複数の変数と型の複合体。
- 直接派生データ型 - 上記のいずれかの型から派生した型で、型として新しい名前と初期値を指定します。
- 参照 – 強く型付けされたポインタの一種。この型の値の算術演算は禁止されています。
変数
変数属性: RETAIN、CONSTANT、AT
- グローバル
- 直接(ローカル)
- I/Oマッピング – 入力、出力、I/O
- 外部の
- 一時的
構成
プログラム組織単位(POU)
- 機能
- 標準: ADD、SQRT、SIN、COS、GT、MIN、MAX、AND、OR など。
- カスタム
- ファンクションブロック
- 標準:
- カスタム - 関数のライブラリはベンダーまたはサードパーティによって提供できます。
- プログラム
構成、リソース、タスク
- 構成 – 処理リソース、IO 用のメモリ、実行速度、タスク数。
オブジェクト指向プログラミング(OOP)
- 標準規格の第3版では、アプリケーションプログラミングにおけるOOPの実装方法について説明しています。
参考文献
外部リンク
- PLCオープン
- [1] IEC 61131-3:2025 プログラマブルコントローラ – パート3:プログラミング言語
- CODESYS – デバイスメーカーに依存しない実装で、オプションとしてオブジェクト指向プログラミング(OOP)が含まれています。
- シーメンスデバイスのみのde:STEP 7実装