本稿では、TIA Portal V14 環境を用いて開発した 4 軸伺服制御および空気圧シリンダ連携システムの設計概要と実装要点について解説する。このシステムの特徴は、伺服軸の精密な動きとシリンダの動作を同期させ、安定した搬送動作を実現する点にある。
PLC プログラム構成
制御プログラムは、保守性と拡張性を考慮し、動作モードごとに処理を分割する構造を採用した。主なモードには手動操作、自動循環、原点復帰が含まれる。
// メインルーチン:動作モード dispatch
CASE #CurrentOpMode OF
1: // 手動操縦モード
FB_ManualOperation();
2: // 自動運転モード
FB_AutoSequence();
3: // 原点復帰シーケンス
FB_HomingProcedure();
END_CASE;
この構造により、現場での调试段階では手動モードを、量産時には自動モードを迅速に切り替えることが可能となる。
シリンダ制御と安全ロジック
空気圧シリンダの制御では、動作完了までの監視タイマーを実装し、機械的な詰まりや圧力不足による異常を検知する。
FUNCTION_BLOCK FB_PneumaticActuator
VAR_INPUT
Cmd_Actuate : BOOL; // 動作指令
Limit_Switch : BOOL; // 完了検知センサー
Max_AllowTime : TIME := T#3000MS; // 許容動作時間
END_VAR
VAR
Monitor_Timer : TON;
Error_Flag : BOOL;
END_VAR
// 指令が出ており、かつセンサーが ON にならない場合にタイマー計測
Monitor_Timer(IN := Cmd_Actuate AND NOT Limit_Switch, PT := Max_AllowTime);
IF Monitor_Timer.Q THEN
Error_Flag := TRUE; // 異常フラグセット
// 警報出力処理へ接続
END_IF;
各シリンダを独立した機能ブロックとしてカプセル化することで、プログラム全体の再利用性が向上し、メンテナンスも容易になる。
HMI 画面設計
オペレーターインターフェースでは、機器の現状を直感的に把握できるよう、図形の色変化で状態を表示する。例えば、シリンダの伸出状態を赤色、縮回状態を緑色で表現する。
また、伺服軸の速度や加速度パラメータを画面上から変更可能なウィンドウを設け、現場での調整効率を向上させた。軟限位の設定も必須であり、機械的な衝突を防ぐための保護機能として実装されている。
電気設計と IO 割り当て
入出力信号の配線設計においては、信号の性質に応じてグループ化を行う。緊急停止や安全光幕などの安全信号、シリンダセンサーなどの入力信号、操作ボタンなどの制御信号に分類し、それぞれ適切なモジュールへ割り当てる。模擬量信号は絶縁モジュールを経由し、伺服のイネーブル信号は安全リレーの接点を介して制御する。
運動制御アルゴリズム
平滑な動作を実現するため、S 字曲線加減速アルゴリズムを SCL で実装した。これにより、伺服モータへの衝撃を低減し、梯形曲線よりも安定した軌道制御が可能となる。
FUNCTION Calculate_Velocity_Profile : Real
VAR_INPUT
Pos_Start : Real;
Pos_End : Real;
Vel_Limit : Real;
END_VAR
VAR_TEMP
Acc_Rate : Real := Vel_Limit / 5.0;
Time_Elapsed : Real;
END_VAR
// 加速度プロファイル計算
IF Pos_End > Pos_Start THEN
Calculate_Velocity_Profile := Pos_Start + (Acc_Rate * (Time_Elapsed ** 2)) * 0.5;
ELSE
Calculate_Velocity_Profile := Pos_Start - (Acc_Rate * (Time_Elapsed ** 2)) * 0.5;
END_IF;
伺服ドライバのブランドによって加速度パラメータの感度が異なるため、現場の機種に合わせて微調整を行う必要がある。
入力信号のノイズ対策
シリンダセンサーなどのデジタル入力では、配線ノイズや機械的な振動によるチャタリング対策が不可欠である。ハードウェアフィルタに加え、ソフトウェア側で連続一致判定を行うフィルタを実装した。
// チャタリング防止ロジック
#Stable_Counter := 0;
IF Sensor_Raw_Input THEN
#Stable_Counter := #Stable_Counter + 1;
ELSE
#Stable_Counter := 0;
END_IF;
// 連続して 3 サイクル ON なら有効と判断
IF #Stable_Counter >= 3 THEN
Sensor_Valid := TRUE;
ELSE
Sensor_Valid := FALSE;
END_IF;
この手法により、配線の揺れなどによる誤信号を効果的に除去できる。
ハードウェア選定と警報管理
多軸制御システムにおいては、絶対値エンコーダーの採用を推奨する。インクリメンタルエンコーダーの場合、電源投入ごとに原点復帰が必要となり、稼働率の低下や工程リスク要因となる。絶対値エンコーダーを用いることで、停電復旧時も現在位置を保持できる。
また、警報管理システムは UDT を利用して統一化し、警報番号、重要度、確認状態などを一元管理する構造としている。これにより、トラブル発生時の原因特定と復旧作業を効率化できる。