コンテンツにスキップ

Logixコネクタ

Logixコネクタは、EtherNet/IP(CIP)プロトコルを使用してAllen-Bradley/Rockwell Automation PLCとの通信を可能にします。ControlLogix、CompactLogix、その他のLogixベースのコントローラーが含まれます。

コネクタタイプ:

  • LogixReader - Logix PLCからタグを読み取る
  • LogixWriter - Logix PLCにタグを書き込む
  • ✅ EtherNet/IP(CIP)プロトコルサポート
  • ✅ TCPおよびUDPトランスポートオプション
  • ✅ 複数のデータタイプ(BOOL、SINT、INT、DINT、LINT、REAL、LREAL、STRING)
  • ✅ 設定可能なスロットルーティング
  • ✅ ポーリングベースのデータ取得
{
"type": "LogixReader",
"config": {
"endpoint": "192.168.1.100:44818",
"protocol": "TCP",
"pollingRate": 1000,
"slot": 0
},
"variables": [
{
"key": "temperature",
"tagName": "MainProgram:Temperature",
"dataType": "REAL"
},
{
"key": "motor_running",
"tagName": "MainProgram:Motor_Running",
"dataType": "BOOL"
}
]
}
{
"type": "LogixWriter",
"config": {
"endpoint": "192.168.1.100:44818",
"protocol": "TCP",
"slot": 0
},
"variables": [
{
"key": "setpoint",
"tagName": "MainProgram:Setpoint",
"dataType": "REAL"
},
{
"key": "enable",
"tagName": "MainProgram:Enable",
"dataType": "BOOL"
}
]
}
パラメータ必須説明
endpointstringPLCアドレス(ホスト:ポート)。デフォルトポートは44818
protocolstringトランスポートプロトコル: TCPまたはUDP
pollingRateinteger✅(Reader)ポーリング間隔(ミリ秒)
slotintegerシャーシルーティング用のスロット番号(デフォルト: 0)
パラメータ必須説明
keystringデータペイロードの出力キー名
tagNamestringPLCタグ名(例: Program:TagName
dataTypestringタグのデータタイプ
{
"key": "motor_status",
"tagName": "Motor_Running",
"dataType": "BOOL"
}

複数のスロットを持つControlLogixシステムの場合、スロット番号を指定:

{
"endpoint": "192.168.1.100",
"protocol": "TCP",
"slot": 2
}

スロットパラメータは、ターゲットコントローラーに到達するためのCIPルーティングパスを設定します。

ControlLogix PLCからプロセス変数を読み取り:

{
"type": "LogixReader",
"config": {
"endpoint": "192.168.1.100:44818",
"protocol": "TCP",
"pollingRate": 500,
"slot": 0
},
"variables": [
{
"key": "temperature",
"tagName": "Process:Temperature_PV",
"dataType": "REAL"
},
{
"key": "pressure",
"tagName": "Process:Pressure_PV",
"dataType": "REAL"
},
{
"key": "flow_rate",
"tagName": "Process:Flow_Rate",
"dataType": "REAL"
},
{
"key": "valve_position",
"tagName": "Process:Valve_Position",
"dataType": "INT"
}
]
}

PLCに設定値を書き込み:

{
"type": "LogixWriter",
"config": {
"endpoint": "192.168.1.100:44818",
"protocol": "TCP",
"slot": 0
},
"variables": [
{
"key": "temp_setpoint",
"tagName": "Process:Temperature_SP",
"dataType": "REAL"
},
{
"key": "pressure_setpoint",
"tagName": "Process:Pressure_SP",
"dataType": "REAL"
},
{
"key": "auto_mode",
"tagName": "Process:Auto_Mode",
"dataType": "BOOL"
}
]
}

生産統計を読み取り:

{
"type": "LogixReader",
"config": {
"endpoint": "192.168.1.100:44818",
"protocol": "TCP",
"pollingRate": 5000
},
"variables": [
{
"key": "total_count",
"tagName": "Production:Total_Count",
"dataType": "DINT"
},
{
"key": "good_count",
"tagName": "Production:Good_Count",
"dataType": "DINT"
},
{
"key": "reject_count",
"tagName": "Production:Reject_Count",
"dataType": "DINT"
},
{
"key": "batch_id",
"tagName": "Production:Batch_ID",
"dataType": "STRING"
}
]
}

解決策:

  • PLC IPアドレスとポートを確認(デフォルト: 44818)
  • ネットワーク接続とファイアウォールルールを確認
  • PLCがRunモードであることを確認
  • Ethernetモジュールが正しく設定されていることを確認

解決策:

  • タグ名が正しいことを確認(大文字小文字を区別)
  • タグスコープを確認(コントローラー vs プログラムスコープ)
  • データタイプがPLCタグ定義と一致することを確認
  • タグが保護されていないか、読み取り専用でないことを確認(書き込みの場合)

解決策:

  • PLCタグ定義とデータタイプを正確に一致させる
  • 配列には正しいタイプを使用(個々の要素を読み取る)
  • UDT(ユーザー定義タイプ)を確認 - 直接サポートされていない

解決策:

  • スロット番号がコントローラーの位置と一致することを確認
  • シャーシ設定を確認
  • 通信モジュールが正しいスロットにあることを確認
  1. 説明的なタグ名を使用: PLC命名規則に従う
  2. 適切なポーリングレート: データの鮮度とネットワーク負荷のバランスを取る
  3. 関連タグをグループ化: 機能またはエリアごとに変数を整理
  4. 接続損失を処理: ワークフローにリトライロジックを実装
  5. オフラインモードでテスト: 本番PLCに接続する前にタグ名を確認
  • OPC UA - 代替産業プロトコル
  • Modbus - レガシー産業プロトコル
  • Siemens S7 - Siemens PLC通信
  • InfluxDB - PLCデータを時系列データベースに保存