こんにちは。シーケンス制御屋のLDニックです。
1時限目はPLCについて学んできましが、PLCとPCの違いはどのようになっているかも把握する必要があるかと思います。
PCの制御を知ることによって、PLCとの違いを把握することができるため、PLCの知識・知見を深めることができるかと思います。
まずは、PCの高級言語・C言語の参考プログラムについてみていきましょう。
C言語は宣言から始まり、その中で処理が行われます。
このC言語の処理は、上から順々に処理を行い、処理が完了したらすぐ反映するという特徴を持ちます。
if(センサー① = ON){
Y0 = ON;
}
この命令、処理が実行されたらすぐに判定結果が出力されます。
ですので、次の条件文であるセンサー②がONするとY0がOFFになりますが、上記命令が実行されれば一旦Y0がONという状態になるということです。
PLCはEND命令まで処理が全て完了するまで出力結果を反映しないというものと異なり、PCの制御では演算処理後に即結果が反映されます。
このあたりは、1時限目の第2章でも少しPC制御について触れましたので参考にしてもらえると嬉しいです。
イメージとして、PCはシングルタスクというのがポイントであり、処理の都合で特定の信号を待つ場合があり、その待ちがダンマリ停止やPCが止まるというものに繋がります。
PLCは仮想的にマルチタスクであるため、出力判定結果は演算終了となるまで待ってくれるため、すべての条件下で出力がON、OFFという状態を確認することができます。
このあたりがPCとPLCの違いになります。
上記のようにPCは処理後結果を反映するのに対して、PLCは処理をすべて終了してから結果を反映する方式となります。
PCはプログラム・カウンタ方式、PLCはストアド・サイクリック・スキャン方式と呼ばれているようで、厳密に言い始めるときりがないのですが初心者の方は、PCはシングルタスク、PLCは仮想的にマルチタスクと理解するだけでPLCというものを把握し始めることができると思います。
PLCでも様々な種類があり、モーションCPUはモーションSFCというSFC言語で記述されていますのでシングルタスクのような処理となります。
PLCでもLD、FB、SFC、STなど言語があり、SFCですとシングルタスクになりますが、LDは仮想的にマルチタスクとなりますので、これらを自分の頭の中で理解するようにしましょう。
PLCの言語については下記記事にて紹介しております。
そもそもですが、PLCとPCの違いについて説明しているかと言いますと、PLCの文化が独特だからです。
私自身、PCのC言語を扱っておりましたので、基本的に高級言語思考でプログラムを考える癖がありました。
高級言語思考ですと、基本的に演算処理が終わらなければ次の処理へ進まないという決まり事を把握しているため、PLCのようなプログラムが常時処理されているという状況を理解するのに苦しむのです。
常時処理を行っているPLCは、プログラムをよく考えなければ処理がぐちゃぐちゃになります。
常時処理をPLCが行っているために生じるものであり、不都合なことも多いですが、異常発生時などの処理は簡単に記述できるため、PLCの仮想的マルチタスクという特性は機械設備からするとありがたいことが多いです。
徐々に話が逸れ始めているため、今回のPLCとPCの違いについてはここまでと致します。
なんとなくPLCとPCの処理が違うということを理解して頂ければ嬉しいです。