0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

OMRON NJ/NXシリーズ PLC変数仕様ガイド

Last updated at Posted at 2025-08-09

はじめに

OMRON NJ/NXシリーズのデータ型について

OMRON NJ/NXシリーズPLCの開発において、適切な変数の理解と使用は高品質なプログラム作成の基盤となります。本記事では、NJ/NXシリーズで使用できる全データ型の仕様、使用方法を詳しく解説します。

目次

  1. 基本データ型の概要
  2. 詳細データ型仕様
  3. 配列と派生データ型
  4. 定数(リテラル)の記述方法
  5. PLCとHMIのデータ型対応

基本データ型の概要

NJ/NXシリーズでは、以下の9つの基本データ型カテゴリが用意されています:

分類 定義
ブール型 値が0または1のいずれかのデータ型
ビット列型 ビットの列で値を表現したデータ型
整数型 値が整数値のデータ型
実数型 値が実数値のデータ型
持続時間型 値が時間(日・時・分・秒・ミリ秒)のデータ型
時刻型 値が時刻(時・分・秒)のデータ型
日付型 値が日付(年・月・日)のデータ型
日時時刻型 値が日時時刻の組み合わせのデータ型
文字列型 値が文字列のデータ型

重要な概念

  • データサイズ(容量値): 実際の値の容量
  • アライメント(境界値): メモリを確保するときの単位

詳細データ型仕様

image.png

ブール型(BOOL)

最もシンプルなデータ型で、TRUE/FALSEの二値を扱います。

データ型 データサイズ アライメント 値の範囲
BOOL 16ビット 2バイト FALSE, TRUE

⚠️ 注意: データサイズは16ビット

ビット列型

ビット操作や通信データの処理に適しています。

データ型 データサイズ アライメント 値の範囲
BYTE 8ビット 1バイト BYTE#16#00〜FF
WORD 16ビット 2バイト WORD#16#0000〜FFFF
DWORD 32ビット 4バイト DWORD#16#00000000〜FFFFFFFF
LWORD 64ビット 8バイト LWORD#16#0000000000000000〜FFFFFFFFFFFFFFFF

⚠️ 注意: ビット列型は大小比較ができません。比較が必要な場合は、WORD_TO_UINT命令などで整数型に変換してください。

整数型

符号付きと符号なしの両方が用意されており、用途に応じて選択できます。

符号付き整数型

データ型 データサイズ アライメント 値の範囲
SINT 8ビット 1バイト -128〜+127
INT 16ビット 2バイト -32768〜+32767
DINT 32ビット 4バイト -2147483648〜+2147483647
LINT 64ビット 8バイト -9223372036854775808〜+9223372036854775807

符号なし整数型

データ型 データサイズ アライメント 値の範囲
USINT 8ビット 1バイト 0〜+255
UINT 16ビット 2バイト 0〜+65535
UDINT 32ビット 4バイト 0〜+4294967295
ULINT 64ビット 8バイト 0〜+18446744073709551615

実数型

浮動小数点演算に使用します。

データ型 データサイズ アライメント 値の範囲
REAL 32ビット 4バイト ±3.402823e+38〜±1.175495e-38, 0
LREAL 64ビット 8バイト ±1.79769313486231e+308〜±2.22507385850721e-308, 0

時間関連データ型

データ型 データサイズ アライメント 値の範囲 記述例
TIME 64ビット 8バイト T#-9223372036854775808ms〜
T#+9223372036854775807ms
T#1d2h3m3s, TIME#25h_3m
DATE 64ビット 8バイト D#1970-01-01〜D#2106-02-06 D#1994-09-23
TIME_OF_DAY 64ビット 8バイト TOD#00:00:00.000000000〜
TOD#23:59:59.999999999
TOD#12:16:28.12
DATE_AND_TIME 64ビット 8バイト DT#1970-01-01-00:00:00.000000000〜
DT#2106-02-06-23:59:59.999999999
DT#1994-09-23-12:16:28.12

文字列型(STRING)

UTF-8エンコーディングを使用します。

項目 仕様
データ型 STRING[Size]
データサイズ (半角文字数+1) × 8ビット
アライメント 1バイト
文字コード UTF-8
文字数制限 0〜1985文字(半角英数字)
0〜661文字(日本語目安)
デフォルトサイズ 256バイト

💡 Tips: 文字列の終端には**NULL(1バイト)**が付加されるため、最大文字数+1文字分のメモリが必要です。**STRING[256]**のようにサイズ指定が必須です。

配列と派生データ型

配列指定(ARRAY)

同じデータ型の要素を複数格納できます。

image.png

// 1次元配列
ARRAY[0..4] OF INT

// 2次元配列
ARRAY[0..5,0..3] OF INT

// 3次元配列
ARRAY[0..1,0..2,0..3] OF INT

配列の仕様

項目 仕様
最大要素数 65,535
要素番号 0〜65534
開始番号 0以外も可能
次元数 最大3次元

💡 Tips: 2次元配列と3次元配列は合計で65,535以下にする必要はあります。
例えばARRAY[0..5,0..9999] OF INTは6×10000で要素数60000となりOKですが、**ARRAY[0..6,0..9999]**だとオーバーになります。

可変長配列

**ファンクション(FUN)ファンクションブロック(FB)**の入出力変数でのみ使用可能。
入力変数、出力変数は使用不可。

image.png

// 可変長配列の例
ARRAY[*] OF INT
ARRAY[*,*] OF INT
ARRAY[*,*,*] OF INT

共用体型(UNION)

同一データに対して複数の異なるデータ型でアクセス可能な派生データ型です。

image.png

image.png

このように1WORDの領域をWORDBYTEBOOLの3種類で操作可能です。
通信で送受信するデータなど、一つのエリアに複数のデータ型が混在する場合に便利です。

image.png

共用体型の仕様

項目 仕様
メンバ数 最大4個
初期値設定 不可(必ずゼロ)
使用可能データ型 BOOL型、ビット列型とその配列
メモリ使用量 最大メンバのサイズ

列挙型(ENUM)

変数の値を文字で表現する派生データ型です。
-2147483648~+2147483647の整数値です。
下図のような型を作れば、名称でカラーコードの指定が可能です。(16進数で直接書けませんが)

image.png

image.png


定数(リテラル)の記述方法

基本的な記述形式

各データ型の定数記述方法一覧:

データ型 記述例
ブール型 TRUE, FALSE,BOOL#1, BOOL#0,BOOL#TRUE, BOOL#FALSE,1, 0
ビット列型 WORD#16#0064,16#0064,100
BYTE#2#01101010
整数型 INT#10#-1,10#-1,INT#-1,-1
実数型 LREAL#10#-3.14,LREAL#-3.14,-3.14,1.0E+6
時間型 TIME#61m5s,T#1d2h3m3s,T#12d3.5h
文字列型 'HELLO',STRING#'文字列'

ビット列型

データサイズを指定して、特定のビット列を扱いたい場合に使用します。

  • データ型名: BYTE (8ビット)、WORD (16ビット)、DWORD (32ビット)、LWORD (64ビット)
  • 基数: 281016
  • 記述形式: (データ型名)#(基数)#(数値)(基数)#(数値)(数値)
  • 記述例: WORD#16#006416#0064100

整数型

符号付きまたは符号なしの整数を扱います。

  • データ型名: SINTUSINTINTUINTDINTUDINTLINTULINT
  • 基数: 281016
  • 記述形式: (データ型名)#(基数)#(数値)(基数)#(数値)(データ型名)#(数値)(数値)
  • 記述例: INT#10#-110#-1INT#-1-1

実数型

浮動小数点数(小数点のある数値)を扱います。

  • データ型名: REALLREAL
  • 基数: 10 のみ
  • 記述形式: (データ型名)#(基数)#(数値)(基数)#(数値)(データ型名)#(数値)(数値)
  • 記述例: LREAL#10#-3.1410#-3.14LREAL#-3.14-3.14

日時型

日時型には、持続時間型、日付型、時刻型、日付時刻型があります。

持続時間型(TIME)

時間の長さを表現します。

  • データ型名: TIME または T
  • 記述形式: TIME#d(日)h(時間)m(分)s(秒)ms(ミリ秒)
  • 記述例: TIME#61m5sT#61m5s

日付型(DATE)

特定の日付を表現します。

  • データ型名: DATE または D
  • 記述形式: DATE#年-月-日
  • 記述例: DATE#2010-1-10D#2010-1-10

時刻型(TIME_OF_DAY)

特定の時刻を表現します。

  • データ型名: TIME_OF_DAY または TOD
  • 記述形式: TIME_OF_DAY#時:分:秒
  • 記述例: TOD#23:59:59.999999999

日付時刻型(DATE_AND_TIME)

日付と時刻を組み合わせて表現します。

  • データ型名: DATE_AND_TIME または DT
  • 記述形式: DATE_AND_TIME#年-月-日-時:分:秒
  • 記述例: DT#2010-10-10-23:59:59.123

その他のデータ型

文字列型(STRING)

一連の文字を扱います。

  • 記述形式: '(文字列)'STRING#'(文字列)'
  • ルール: シングルクォート ' で囲みます。文字列内に ' や改行を含めるにはエスケープ文字を使用します。
  • エスケープ文字: $$ (ドル記号)、$' (シングルクォート)、$L (改行) など

列挙型

定義された複数の値の中から1つを選択する場合に使用します。

  • 記述形式: {列挙型のデータ型名}#{列挙子}
  • 記述例: _eDAYOFWEEK#_WED (曜日データ型 _eDAYOFWEEK の水曜日 _WED

PLCとHMIのデータ型対応

NJ/NXシリーズと**NAシリーズ(HMI)**間でのデータ型対応表

PLCのデータ型 HMIのデータ型
BOOL Boolean
INT Short
DINT Integer
LINT Long
UINT, WORD UShort
UDINT, DWORD UInteger
ULINT, LWORD ULong
REAL Single
LREAL Double
STRING String
SINT SByte
USINT, BYTE Byte
TIME TimeSpan
DATE, DATE_AND_TIME, TIME_OF_DAY Date
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?