シーケンス制御で使用されているラダー言語。
「ガラパゴス」だとか、「欧州に取り残されている~」だとか、散々な言われようです。
この意見は、実際に現場の最前線で仕事をしたことがない人の空想でしかありません。
ラダー言語にはまだまだ将来性がある、というのが私の見解です。
ラダー言語は枯れた技術であり、学習コストも低く汎用性が高いので、まだまだシーケンス制御の基幹であり続けます。
ただし、ラダー言語が苦手な数値演算や画像処理などを、他言語で処理しようとする流れもあるのは事実です。
ラダー言語だけしかできないエンジニアは淘汰され、複数言語を操るエンジニアが重宝される時代はもう目の前に来ています。
このような理由から、制御設計者として将来に渡って稼げるようになりたいなら、他言語を習得し高年収の会社へ転職しないといけません。
ラダー言語が廃れることはないから安心してもOK、ただし…
ラダー言語は、登場して約50年経った今でも現役で使用されています。
昨今では「将来性がない」だとか「ガラパゴス化している」といわれていますが、廃れることはありません。
単純な制御であればラダー言語で十分、設計コストも安く済む
単純な制御で十分な設備を設計する場合、ラダー言語を使用して設計するべきです。
ラダー言語の強みとして、
- リレー回路を簡単に再現できる
- 基礎部分の学習コストが低い
- 情報が出尽くしている
があります。
特に複雑な制御を必要としない場合ほど、採用するメリット大。
設計コストが安く済み保守性も高いからです。
特に日本国内の設備では、ラダー言語で設計されたプログラムがほとんど。
国内で制御エンジニアとして働くなら、ラダー言語が不要となる日はないでしょう。
アナログ制御や数値演算の分野においてはラダー言語では厳しい
逆にラダー言語の不得意な分野として、
- アナログ制御
- 数値演算
が挙げられます。
PLCはリレー制御回路を省配線化、省スペース化するために発明されたもの。
ラダー言語はあくまでもリレー制御回路をデジタル化したものに過ぎません。
そのためラダー言語は信号のオン・オフを扱うのは得意でも、数値を扱う演算や制御は苦手です。
できないことはないですが、他の言語と比較するとプログラムが煩雑になりがち。
そんなラダー言語の弱点を補うため、多くのPLCはST言語やC言語などを扱えるように進化しています。
今後もラダー言語は使われ続けるので、将来性を不安視する必要はありません。しかし、他の高水準言語と組み合わせることが主流になっていくのは間違いないでしょう。
ラダー言語の弱点を補う高級言語のひとつST言語とは?
複雑な制御が求められる現代の制御設計で、ラダー言語の弱点を補うのがST言語です。
ST言語とは?
正式な名称は『ストラクチャードテキスト言語』で、『構造化テキスト』とも呼ばれています。
高級言語に属しており、人間が理解しやすい構文で構成されるプログラミング言語のひとつです。
ST言語はC言語等の文法に近い形で記述するため、プログラミングの経験がある人はすんなり理解できるでしょう。
ラダー言語プログラム
ST言語プログラム
IF Signal THEN Result := Int1 + Int2; (* 加算 *) ELSE; Result := Int1 - Int2; (* 減算 *) END_IF;
ST言語の強みは数値演算処理
先程紹介した一例では、処理が単純なので双方とも煩雑さの違いはあまりありません。
しかし次の場合はどうでしょうか?
例:直径10cmの円の面積を求めるプログラム
直径10cmの円の面積を求めるプログラムを、ラダー言語とST言語で記述した例を紹介します。
たかだか円の面積を得るだけで、5行ものプログラムを記述しないといけません。
また、パッと見たときの分かりにくさもあります。
では同じプログラムをST言語で記述した場合、どうなるでしょうか?
Diameter := 10.0; (* 円の直径 *) pai := 3.14; (* 円周率 *) Result := ((Diameter / 2.0) ** 2) * pai; (* 円の面積 *)
ラダー言語と比べて、処理の流れがシンプルでわかりやすいですよね。
数値演算においてはST言語がラダー言語を圧倒しています。
アナログ信号の処理も同じで、入力値をデジタル化する際も複雑な演算処理が必要です。
ST言語を理解していれば、演算処理を利用する制御においてもわかりやすいプログラムが書けますね。
シーケンス制御設計エンジニアも高級言語に触れておくべき理由
ラダー言語の将来性は十分にあるとはいえ、ラダー言語しかできないのは危険です。
今後はラダー言語に加えて、他の言語を扱えるエンジニアが優遇される時代が来ます。
むしろ、今その波が来ている最中です。
製造工程のデータ収集や機械学習による改善が求められている
自動車業界を例に挙げると、見える化が流行しています。
設備の生産データから構成されたビッグデータをもとに、改善をおこなう取り組みです。
100歩譲ってデータ収集だけなら、ラダー言語でも十分対応できます。
しかし機械学習機能を搭載する場合、ラダー言語以外の知識が必要です。
たとえば機械学習が得意なPythonを使うことも考えないといけません。
実際、三菱電機製のPLC『iQ-R』シリーズのC言語インテリジェントユニットがPythonに対応しました。
世の中はデータ収集および解析に注目しています。
現代の制御設計エンジニアに求められるスキルは、設備制御+データ処理の知識です。
この流れについていくには、高級言語の学習は必須といえるでしょう。
とりあえず何から始めたらいいのかわからない人は、Pythonから始めると良いでしょう。とっつきやすく情報も溢れているので、初心者には最適です。
外資系企業への転職が容易になり年収を上げやすい
残念な話ですが、欧米においてラダー言語はほとんど使用されていません。
- フローチャート図
- SFC言語
- ST言語
といった構造化言語がメインです。
そのため外資系企業のほとんどが、採用条件に構造化言語の経験を重視しています。
一生食いっぱぐれない人材になりたいなら、外資系企業へも転職可能なスキルを身に着けましょう。
また外資系企業はスキルが求められるかわりに、給料は高めです。
構造化言語を扱える人で今の給料に不満があるなら、外資系企業への転職をおすすめします。
日系企業でも構造化言語を扱える人材は重宝されます。海外勤務や出張に従事すれば、外資系企業クラスの年収も可能です。
ラダー言語の将来が不安なら高級言語の勉強をしておこう
ラダー言語の将来性としては、他言語との共存という形で生き残っていくと思われます。
そのためラダー言語一本だけでこの先食べ続けていくのは、至難の業です。
どうしてもラダー言語だけで食べていきたいなら、製造メーカーではなく保全や保守会社を目指しましょう。
いずれ他言語の必要性に迫られる日が来ますが、かなり先延ばしにできます。
しかし制御設計エンジニアとしてスキルを伸ばし、高い給料をもらって働きたい人。
このような人はST言語でも、C言語でも、Pythonでも高級言語での開発経験を積みましょう。
難しいことから始めなくても、簡単なプログラムを作り基礎を学ぶ程度でも問題ありません。
ラダー言語しか知らないという状況がマズいのです。
また、ラダー言語だけで食べていけると考えている危機感のない会社もマズいです。
生き残りたいなら、プログラミングの勉強をしましょう。
仕事が忙しくて学ぶ余裕がないなら、他言語も扱うシーケンス制御設計会社へ転職するのも手です。
当サイトではシーケンス制御設計エンジニア向けに、年収を上げるための転職サイトを紹介しています。
- ラダー言語だけでなく他の言語も扱える
- 仕事量に対して給料が安すぎる
こんな人は転職で大幅に年収を上げられるかもしれません。
せっかく制御設計という需要の多い特殊な技術を持っているなら、高く売りましょう。
あなたのスキルを高く買ってくれる企業はたくさんあります。
この機会に、一度自分の市場価値を確認してみることをおすすめします。