変数とアドレスってどう違うの?PLCの変数プログラミングのメリットは?
こんな疑問に答える記事です!
この記事で分かること
- 物理アドレスと変数の違い
- 変数プログラミングとは
- 変数プログラミングの必要性
- 変数プログラミングの仕組み
- 変数プログラミングのメリット
物理アドレスプログラミングと変数プログラミングの違い
PLCのプログラミングは、ラダー言語が主に使われています。ラダー言語を使ったプログラミングでは、従来から物理メモリアドレスを指定して行っていましたが、最近では変数プログラミングが主流になってきています。
まずは、物理アドレスプログラミングと変数プログラミングの違いを分かりやすく理解していただくために簡単な例で説明します。
物理アドレスプログラミングとは
まずは、物理アドレスについて理解してもらうために本屋に行くことを想像してみてください。本屋は大きな建物で、たくさんの本が棚に並んでいます。各本は一意の識別番号を持っており、識別番号は棚の位置や棚のどこに本があるかで決まります。
この場合、本の識別番号が物理アドレスに相当します。
物理アドレスプログラミングは、本屋の本棚に直接行って本を探すようなものです。本を探す際に、その本の具体的な場所を知っている必要があります。
具体的な場所(識別番号)を知っていれば、本棚に直接行くので本をすぐに見つけて取ることができます。逆に場所を知らないと本を見つけることができません。
変数プログラミングとは
変数プログラミングは、本の識別番号を覚えておく必要がなく、代わりに本の名前やジャンルなどの情報を使って本を見つけることができます。本の名前を覚えていれば、本屋のスタッフに尋ねたり、書籍検索機で本を見つけることができます。
この場合、本の名前が変数名に相当します。
変数プログラミングは、インターネットの検索エンジンを使って本を探すようなものです。本の名前を覚えるだけで、本の具体的な場所を心配する必要はありません。
名前を検索エンジンに入力するだけで、本が見つかります。本屋のどこに欲しい本があるかを覚えておく必要がありません。
物理アドレスプログラミングは、物理アドレス(本の識別番号)で直接的なアクセスが可能ですが、識別番号を覚えておく必要があります。
変数プログラミングは、変数名(本の名前)で間接的にアクセスでき、識別番号を覚える必要がなく、柔軟性と可読性が向上します。
変数プログラミングの必要性
現代の製造業では製品のライフサイクルおよび生産設備の開発期間の短縮に伴って、設備を制御するソフトウェアの開発効率が求められています。そのため、PLCのソフトウェア開発において変数のプログラミングを使用することで、ソフトウェア開発の標準化や複数人での開発が容易になり開発効率が向上します。
変数プログラミングは
変数プログラミングとは
変数プログラミングは物理アドレスではなく、変数(名前)を用いるプログラミングのです。
プログラミング時にアドレスを意識する必要がなく、PLCの機種に依存しないのが特徴です。
これは書籍検索機で名前を使って本屋にある本を見つけるのと同じようなことです。
ジュンク堂や紀伊国屋などが本屋の広さや、棚の配置・収納容量によって、本屋毎に決めている各本の識別番号を意識せずに、本を見つけるような感覚と似ています。
また、変数プログラミングは、IEC61131-3において、共通要素として定義されていて、変数プログラミングは標準化された形でPLCのプログラミングを行うことができるため、回路の再利用性が向上するのも特徴の1つです。
変数プログラミングの仕組み
PLCの機種に依存しない仕組み
PLCメーカ毎に固有の物理アドレスが存在します。そのため、プログラム前に事前にPLCがどのような物理アドレスを指定しているか仕様書で確認する必要がありました。
一方で、変数プログラミングはPLC毎に存在する物理アドレスを意識する必要がありません。
変数定義部には自動のアドレス割付機能を持たせ、変数と物理アドレスが関連付けできるようにします。
回路部分は変数名を使用してプログラミングを行い、変数定義部にて、個別のハードウェアに依存する物理アドレスを割り付けるようにします。つまり、回路部分はハードウェアに関係なく共通で、変数定義部にて、個別のハードウェアに依存する部分を対応できるようにします。この仕組みにより、ハードウェアに依存する物理アドレスを考慮せずにプログラム開発ができるようにします。
回路を再利用できる仕組み
一度変数プログラミングで実装した機能を別のPLCで同じ機能を必要とする場面を考えてみましょう。回路を再利用するためには、変数定義部で変数名と物理アドレスが自動で再設定できることが重要です。元々作った回路の変数名と、新しいプロジェクトで作成した回路の変数名を、それぞれ対応する物理アドレスに関連付けます。こうすることで、同じ変数名を使いながらも、異なるプロジェクトで正しいメモリアドレスにアクセスできるようになります。このようにして、元の回路と同じ機能を新しいPLCでも使えるようになります。変数プログラミングの特性により、回路の中身は同じままで、変数定義部の設定で再利用が可能です。これにより、効率的に機能を再利用し、開発効率が向上します。
アドレス競合防止の仕組み
アドレス競合を防ぐ仕組みを、ローカル変数とグローバル変数を例を使って説明します。
ローカル変数: ローカル変数は、ある特定の範囲でのみ有効な変数です。他の部分からアクセスできないため、アドレス競合の心配がなくなります。
例えば、あなたがキッチンで料理をすると考えてみましょう。キッチンの中で使う具体的な材料や器具(ローカル変数)は、他の部屋のものとは関係ありません。他の部屋で使われているものと混ざることはありません。これにより、キッチンでの作業がスムーズに進み、アドレス競合のリスクが低減します。
グローバル変数:グローバル変数は、プログラム全体でアクセス可能な変数であり、複数の部分から共有されます。複数の場所から同時にアクセスされる可能性があるため、アドレス競合が起きる可能性があります。
例えば、家族全員が共有するリビングルーム(グローバル変数)を考えてみましょう。家族の誰かがリビングルームを使っているとき、他の人が同時にリビングルームを使おうとすると競合が起きる可能性があります。誰がどの家具を使っているかを調整しないと、混乱や問題が生じる可能性があります。
アドレス競合防止の考え方:アドレス競合を防ぐためには、ローカル変数を使って各部分でデータを隔離する必要があります。ローカル変数は各部分で独立して存在するため、他の部分との競合の心配がありません。一方でグローバル変数は、すべてのプログラム共通で利用できます。
このように、ローカル変数とグローバル変数をうまく使うことで、アドレス競合を効果的に防ぐことができます
変数プログラミングのメリット
変数と物理アドレスの違いや変数プログラミングの概要・仕組みについて述べました。以上のことから変数プログラミングのメリットをまとめてみました。
変数プログラミングのメリット
- PLCの機種に依存しない:変数プログラミングは、物理アドレスではなく変数名を使用するため、既存のPLCプログラムを他メーカーのPLCへ移植するのが容易になります。
- 回路の再利用性向上:変数プログラミングは、変数名を使用してデータにアクセスするため、異なるプロジェクトで同じコードを再利用しやすくなります。これにより、開発効率が向上します。
- アドレス競合防止:物理アドレスを直接扱わないため、アドレス競合(複数の箇所が同じアドレスを利用してしまう問題)のリスクを低減します。変数が使える場所や範囲を限定することで、意図しない競合を防ぐことができます。
- 回路の可読性向上:変数名は意味が分かる名前を付けることができるため、プログラムの可読性が向上します。変数名によるプログラムにより、他のプログラマーやメンテナンス担当者がコードの意図や機能を理解しやすくなります。
コメント