WEB miniセミナ



『PLCとオブジェクト指向』

*PLCとは?

PLCはプログラマブルコントローラの略称です。         
PLCはシーケンス制御を行う電子装置です。           
リレー式でシーケンス制御を組み込んでいた制御盤では案件ごとに  
リレーシーケンスを組んで様々なリレー部材を組み合わせて制御装置を
組み上げています。これを汎用化したコントローラがPLCです。  

リレーは、電圧を与えるとコイルに電流が流れ、磁力を発生させ接点を
ON/OFFさせ外部機器から情報を取得したり操作したりします。  
単純なゲートと考えれば理解しやすいと思います。         
リレーを直列に接続させればAND回路に、並列に接続させればOR 
回路になります。またタイマーの機能があり、特定の周期でリレーを 
ON/OFFさせることも出来ます。               
リレーには様々な特性があり、それに応じて多くのリレー部品が商品化
されています。                         

PLCでは、仮想的にリレーの回路をプログラム形式で入力して   
プログラムを書き換えることで様々な案件に対応することができる非常
に便利な制御装置です。                     
最近はシーケンス制御機能に加え、演算機能・情報処理機能・ネットワ
ーク機能を備え、リアルタイム制御の中心的なコントローラとして幅広
い分野の自動化システム・装置に使用されています。        

*PLCのプログラムとは?

 シーケンサは、制御の内容(シーケンス)はプログラムとしてコント
ローラ本体に記憶されます。                   
シーケンサのプログラミングは、ラダ―図によるプログラミングと専用
命令によるプログラミングの2種類があります。          
ラダー図は、リレーを記号で回路を図式的に表現してプログラミング 
します。データを様々なリレーから取得して内部レジスタに保存したり
読み出し演算したりして外部の接点を操作し時系列的に制御します。 
また専用命令は、アセンブリ言語に似たLD,AND、OUT等の  
ニーモニックを使用します。                   

シーケンスプログラムは、PLCが最初の行(0ステップ)から順次読
み出しEND文に出会うと最初に遷移してループを形成するような処理
構造になります。                        

基本的にはPLCの内部レジスタから情報を所得し、演算処理などを 
実施してレジスタに書き込み外部デバイスから情報を取得したり操作し
たりします。プログラムの構造的は、階層的なCALL関係で表現でき
ますが、C言語のような引数の概念がありません。また変数も存在せず
全てデバイスと言うリレーを意味する物の発展系の単位で情報を取得し
たり保存したり操作したりします。                
リレーはON/OFFの論理値データですが、文字や数値データを保存
できるデータも利用できます。                  
PLCには、以下のようなプログラムができます。         
・メインプログラム                       
 プログラムエリアの先頭に格納され上記のようにループ処理を形成し
 ます。これが全ての基本で、1サイクル回るのに要する時間が重要に
 なっています。                        
・サブルーチンプログラム                    
 メインプログラムからCALL命令で呼び出されます。      
 これを利用することで構造化プログラミングは可能になります。  
・割込みプログラム                       
 割込み要因が発生した時に実行されるプログラムです。      
 多重割り込みは優先度の高い割り込みが起動されます。      
 割込み禁止許可も可能となります。               
・マイコンプログラム                      
 シーケンサのCPUのマシン語で作成します。          
 作成したマイコンプログラムはSUB命令で起動されます。    

*オブジェクト指向の適用について。。。

 PLCは、周期起動の概念が適用され1サイクルに掛かる処理時間で 
入力デバイスの検出遅れ時間の算出が可能になります。       
PLCプログラムではスキャンタイムという用語で表現しています。 
これはPLC自身が計測して特殊レジスタ内に格納しています。   
PLCプログラムには変数という概念は無く、全てデバイスという  
記憶領域を利用します。                     

 このようなプログラム言語でも必要なことは、制御目的単位で   
オブジェクトに分けること、これはシーケンス単位になります。   
制御対象物を物理的な対象物で分離できる部分は分離します。    
他のユニットとのインタフェースやマイコンプログラムの部分が   
カーネルオブジェクトに相当することになります。         

オブジェクトの状態を示す属性は、シーケンサの内部レジスタに   
実現すれば問題ありませんが、レジスタと属性名の変換表は     
必修になりそうです。                      

オブジェクト指向言語特有の継承の概念は1クラス1インスタンスと 
考えることでUMLをベースとしたオブジェクト指向でのモデル化が 
可能になると思えます。                     
特にシーケンス制御状態を内部レジスタに格納する事で状態の分析や 
オブジェクト間の時系列的なやり取りをシーケンス図で分析出来ます 
ので様々な切り口でPLCにもオブジェクト指向の展開が可能で   
はないでしょうか?


セミナを御覧になって御感想、御意見、御質問などは以下に
自由にコメント頂ければ幸いです。

Send E-mail:iwahashi@est.hi-ho.ne.jp





Wellcome to Software development support page !!