自動化のためのコーディング:PLCプログラミング

(出典: Libor / stock.adobe.com)
プログラマブルロジックコントローラ(PLC)の歴史は、産業革命と情報革命が融合した歴史と言えます。1910年代初頭の移動式組立ラインの登場以来、製造業を迅速かつ信頼性が高く、一貫して再現可能なものとするための努力が絶え間なく続けられてきました。 第一次産業革命期の工場では、大量生産の問題解決に純粋な機械的・電気的な動力源が用いられました。これは組立ラインを頻繁に再構成する必要がない場合には非常に有効でした。しかし1960年代までに、自動車産業ではモデル年ごとに組立ラインの再構成が必要となり、技術者がセンサーやソレノイドを手作業で再配線する手動プロセスに依存せざるを得なくなりました。 同時に、まだ発展途上であったコンピュータ産業は、物理的に堅牢で費用対効果の高い解決策を提供できるほどに成熟していました。自動車メーカーは現代のPLCの前身となるハードウェアを導入し始めました。これにより、技術者は組み立てラインの配線を完全にやり直す必要がなくなり、新しいコードをアップロードするだけで製造プロセスを変更できるようになりました。
むしろ、それが理論でした。
本稿では、国際規格IEC 61131-3で定義される現代的なPLCのプログラミング手法について、様々な選択肢を検討します。ただし、各PLCメーカーは自社のハードウェアをプログラミングするためのソフトウェアを提供しているため、メーカー間ではコーディング技術に微妙な差異が生じます。
自動化技術の初期プログラミング
これらのPLCの前身となる様々な機械式・電気式・電子式制御システム、ならびに空圧・油圧制御システムは、当初は良好に機能していましたが、重大な欠点を抱えていました。それらの再プログラミングにはアセンブリ言語やFortranプログラミング言語の知識が必要ですが、これらのシステムの保守や更新を担当する電気技師や機械技師はプログラマーではなかったのです。代わりに彼らが用いたのはラダーロジックと呼ばれる言語でした。 電子技術者たちは設計段階に戻り、現在のPLCと呼ばれる第一世代の装置を開発しました。その後数十年の間に追加のプログラミング手法が導入されましたが、今日に至るまでラダーロジックは産業分野における主要なプログラミング手法であり続けています。
ラダーロジック
ラダーロジックは当初、製造およびプロセス制御で使用されるリレーラックの設計と構築を視覚的に記録するために作成されました(図1)。これはリレーロジックハードウェアの回路図に似ています。ラダー図は、電源レールを2本の垂直線として描くことから始まります。これらの電源レールの間の水平線(ラダー)は、原子論理演算を表します。入力シンボル(接点と呼ばれる)は、センサー、スイッチ、および押しボタンを表します。これらは各ラダーの左側と中央に配置されます。 一方、モータ、リレー、表示灯、サイレンなどの出力(コイルと呼ばれます)は、ラングの右側に配置されます。システムの制御ロジックは、入力間の論理関係(例:AND、OR、NOT)を構築し、それらを出力に接続するために、接点とコイルを配置することで実装されます。

図1:ラダーロジック図の例(出典:Green Shoe Garage)
入力ロジック記号として一般的なものに、「接点閉状態検出(EON)」または「接点閉状態確認(XIC)」と「接点開状態検出(EOF)」または「接点開状態確認(XIO)」があります。EONは常時開接点またはバッファのいずれかを表します。同様に、EOFは常時閉接点またはインバータのいずれかを表します。 最後に、出力論理記号は出力通電(OUT)と呼ばれます(図2)。その意味は一つだけです。出力コイルが制御する出力デバイスに電力を供給することです。

図2:一般的なラダーロジック記号。左から右へ:検査オン(EON)、検査オフ(EOF)、出力通電(OUT)(出典:Green Shoe Garage)
並列に配置された入力は、論理和(OR)演算に相当する形で配置されます。逆に、直列に配置された入力は論理積(AND)の関係を形成します。もう一つ重要な点は、各出力の状態を制御する入力のシーケンスが唯一となるよう、ラダー図内では出力が一度だけ出現すべきであるということです。
PLCはプログラムスキャンサイクルと呼ばれる動作方式で動作し、プログラムを繰り返し実行します。PLCが全ての入力を命令と照合し、現在の機械状態を反映して出力を変更するには、平均して数十ミリ秒を要します。制御プログラムのラダーロジック表現は、通常左から右へ、上から下へと読み込まれます。一般的に、スキャンサイクルは以下の流れに従います:
- 入力内容をお読みください
- プログラムを実行してください
- 出力ビットを書き込みます
ラダーロジックを用いたプログラミングに関する最終的なルール:
- ラダーロジックのコードは、論理的に流れ、理解しやすいように整理してください。関連する機能をまとめてグループ化し、サブルーチンを使用してコードをモジュール化してください。
- 段差の大きさを制限してください。過度に大きな段差は、トラブルシューティングが困難になる可能性があります。複雑なロジックは、より小さく扱いやすいステップに分解してください。
- PLCソフトウェアに非常停止機能をプログラムしないでください。センサー故障などの予期せぬ事態が発生した場合のプログラム動作を考慮し、リスクを最小限に抑えるため、フェイルセーフ動作を設計してください。非常停止装置は機械の電気配電システムにハードワイヤリングで接続する必要があります。生命や安全に関わる問題については、決してPLC自体に依存しないでください。
- 入力信号をバッファまたはインバータに接続することで、機械の配線変更ではなくソフトウェアベースの変更を可能にします。産業の世界では、ダウンタイムは重大な財務的・人的影響を及ぼすことをご留意ください。コードの変更は配線変更よりも容易です。
- プログラム全体を通じて一貫した論理原則を適用してください。例えば、起動条件に常時開(NO)接点を使用する場合、特別な理由がない限り、同様の機能には引き続きNO接点を使用してください。また、カウンタを使用する場合は、カウントアップタイマーとカウントダウンタイマーを一貫して使い分けてください。
- メモリマップ(データテーブルとも呼ばれることがあります)を理解してください。PLCはメモリ容量に制限のあるデバイスであり、入出力(I/O)用に固定されたメモリアドレスを使用します。そのため、デスクトップアプリケーションなどの他のソフトウェア開発よりも、内部メモリ構造に関する深い知識が開発者に求められます。 さらに、異なるデータ型(メーカーによってはファイルタイプと呼ぶ場合もあります)は、それぞれ異なるビット数で表現されます。メモリの様々な構成要素を示すために、特殊な表記が用いられます。例:
O:3.1/0
[ファイルタイプまたは番号]: [ 要素番号]. [ ワード番号]/ [ ビット番号]
ファイルタイプ/番号は、入力、出力、カウンタなど、データのタイプを表します。 要素番号はI/Oスロットを表します。データ型がマルチワードの場合、ワード番号はアクセスするワードを示します。最後に、ビット番号はワード内のアクセス対象ビットを示します。したがって、この例は第3出力スロットの第2ワードの第1ビットを表します。
繰り返しになりますが、これらの形式はベンダーによって異なりますが、特に外部I/Oにおいては、個々のビットが設定される位置を詳細に理解することが重要です。
ラダーの先
ラダー図に加え、IEC 61131-3は他の2つのグラフィカルなPLCプログラミング手法、すなわちファンクションブロック図(FBD)とシーケンシャルファンクションチャート(SFC)についても規定を設けています。また、構造化テキストと呼ばれるテキストベースの手法についても詳細に記述しており、これは構文的にPascalに似たブロック構造プログラミング言語です。 なお、Arduino社は自社製PLC「Arduino Opta」シリーズ向けに、Arduinoベース(C言語のラッパー)のプログラミング手法を導入しております。その他のPLCベンダー各社も、独自プログラミング言語からの移行を進めており、Python、Java、C++などの言語を採用する動きが見られます。
PLCのプログラミングにおける構造化テキスト手法は、製造プロセスを産業用モノのインターネット(IIoT)対応化を目指す組織の間で、ますます普及しつつあります。IIoT(インターネットまたは大規模なプライベート広域ネットワークに接続されているか否かを問わず)は、従来の非ネットワーク型工場自動化技術と比較して、一部の製造業者にとって魅力的である可能性のあるいくつかの利点(およびいくつかのリスク)を提供します。
産業用IoT(IIoT)の登場により、現代のPLCにはより高度なネットワーク機能が搭載されるようになりました。これにより、インターネットへの接続やIIoTエコシステム内の他デバイスとの通信が容易に行えます。これには、リアルタイムのクラウド接続やデータ交換に不可欠なMQTT、AMQP、OPC UAといった各種通信プロトコルのサポートが含まれます。 これは、企業資源計画(ERP)システムとの統合、デジタルツイン、予知保全、遠隔監視など、複数の理由から望ましいものです。
著者について
Michael Parksは、メリーランド州南部に拠点を置くカスタム電子機器設計スタジオおよび技術コンサルティング会社、Green Shoe Garage のオーナーです。彼は、技術および科学に関する一般の人々の意識向上を目的としたポッドキャスト「S.T.E.A.M. Power」を制作しています。また、メリーランド州公認の専門技術者であり、ジョンズ・ホプキンズ大学でシステム工学の修士号を取得しています。