APDahlen Applications Engineer
要約
FirstScan(ファーストスキャン)トリガは、PLCの初期起動時、またはPLCが停止状態から動作状態に移行時に、PLC全体にわたるプログラム要素の初期化を調整します。本技術概要では、図1に示す S7-1200 PLC を使用し、TIA Portalにおいてこの機能を有効化する方法について説明します。FirstScanの動作は中級レベルのPLCトピックとなるため、TIA Portalの基本的な操作知識をお持ちであることを前提としています。
おおよその読了時間:4分
本記事は、DigiKeyのSiemens PLCおよびオートメーションのリソースハブの一部です。その他のSiemensのコンポーネント、アプリケーション、およびプログラミングに関する技術概要は、このハブをご覧ください。
PLCのFirstScanとはどのようなもので、なぜ重要なのでしょうか
FirstScanはシステムレベルのブール値のメモリ位置です。このビット(以下、FirstScanと呼びます)は、最初のプログラムスキャンサイクルに限り、自動的にTRUEに設定されます。
FirstScanは初期化フラグとして機能します。プログラマーはこのワンショット信号を用いて、プログラム構成単位(Program Organizational Units, POU)の順序立った初期化を実行することが可能です。例えば、FirstScanは条件付き割り当てブロック内で使用され、ステートマシンをアイドル状態に初期化することができます。
// FirstScan prototype in structured text
IF "FirstScan" THEN
// Initialize my variables
END_IF;
システムレベルのメモリ位置として、PLCの電源投入時または停止状態から動作状態への移行時に、FirstScanが毎回パルス信号を受け取ることが予想されます。適切な注意を払うことで、FirstScanはPLC起動の不可欠な要素となり、一貫性があり予測可能なプログラム初期化を実現します。
図1: 著者の作業台に設置されたSiemensの S7-1200 PLC
SiemensのTIA PortalでFirstScanを有効にするには、どのような手順が必要でしょうか?
SiemensのFirstScanを有効にするには、次の2つの手順が必要です。
-
図2に示すように、システムメモリビットのオプションをイネーブルにしてください。
-
図3に示すように、新しいハードウェア構成をコンパイルし、その後ダウンロードしてください。
技術的なヒント: 図3に示されているハードウェアのプロセスを、メインプログラム(例えばラダーロジック)と混同しないでください。これらはそれぞれ異なる独立したPLCダウンロード機能を備えています。これらを設定(ハードウェアの準備)とソフトウェア(プログラムの実行)という観点から考えることができます。
メインプログラムはコンパイルできたものの、FirstScan関連のコードが動作しないという困難な状況に遭遇しました。驚くべきことに、システムメモリビットがディスエーブルの場合でも、TIA Portalのコードはコンパイルされました。
図2: TIA Portal内のFirstScanイネーブルチェックボックスの位置
図3: TIA Portal内のハードウェアコンパイルおよびダウンロードオプションの位置
FirstScanの検証
このシンプルな構造化テキストプログラムは、FirstScanビットの動作を実演するものです。本プログラムには、セレクタスイッチとオン-オフ-オンのモーメンタリセレクタスイッチを含む3つの入力があります。また、赤/緑のデュアルカラーパネルランプ用の2つの出力も備えています。
FirstScanはプログラムの最初の行に位置し、セレクタスイッチの状態に基づいてパネルランプの色を初期化する役割を担っています。これにより、FirstScanロジックが動作していることを示す視認性の高いインジケータが提供されます。
PLCの電源を入れ直した際、セレクタスイッチの位置に応じてパネルランプの色が変化すれば、成功する確率は高いと確信しています。
FirstScanの動作を実演するコードブロック
// FirstScan Initialization Demonstration
IF "FirstScan" THEN
IF "gxSW1" THEN
"gxPLGreen" := FALSE;
"gxPLRed" := TRUE;
ELSE
"gxPLGreen" := TRUE;
"gxPLRed" := FALSE;
END_IF;
END_IF;
IF "gxSSLeft" THEN
"gxPLGreen" := FALSE;
"gxPLRed" := TRUE;
END_IF;
IF "gxSSRight" THEN
"gxPLGreen" := TRUE;
"gxPLRed" := FALSE;
END_IF;
技術的なヒント: 私は個人的に、ハンガリアン記法を用いてメモリの範囲と種類を把握しています。このアプリケーションでは、プリフィックス「gx」はグローバルおよびブール値を表しています。
よくある質問
FirstScanビットの目的は何ですか?
FirstScanビットはイネーブル信号です。このトリガ信号は、PLCが最初に電源投入された時、または停止状態から動作状態に移行した時に発生します。
プログラムがこのビットを検出すると、重要なメモリ領域(カウンタをゼロに初期化したり、ステートマシンをアイドル状態に設定するなど)を初期化するタイミングであると認識します。
私のFirstScanは、どうして動かないのでしょう?
メインプログラムがコンパイルできる場合、以下の3つの問題が考えられます。
- システムメモリビットがイネーブルされていない(図2参照)
- ハードウェアの変更がコンパイルされていない(図3参照)
- ハードウェアの変更がPLCにダウンロードされていない(図3参照)
おわりに
FirstScanの動作は、PLCが起動した際に最初にする呼吸のようなものです。これから始まる本格的な作業に備え、PLCの環境を整える時が来たという合図です。
ご健闘をお祈りします。
APDahlen
著者の関連記事
この記事がお役に立てたなら、以下の関連記事も参考になるかもしれません。
- Navigating Siemens S7-1200 PLC model numbers
- SiemensのTIAポータルを使用したユーザー定義ファンクションブロック(UDFB)の構築
- 仕様を超えて:適切なPLCを選択するためのソフト要件
- Siemensの安全リレー 3SK1 におけるT1信号とT2信号は、どのような状態を示しますか?
著者について
Aaron Dahlen氏、LCDR USCG(退役)は、DigiKeyでアプリケーションエンジニアを務めています。彼は、技術者およびエンジニアとしての27年間の軍役を通じて構築されたユニークなエレクトロニクスおよびオートメーションのベースを持っており、これは12年間教壇に立ったことによってさらに強化されました(経験と知識の融合)。ミネソタ州立大学Mankato校でMSEEの学位を取得したDahlen氏は、ABET認定EEプログラムで教鞭をとり、EETプログラムのプログラムコーディネーターを務め、軍の電子技術者にコンポーネントレベルの修理を教えてきました。
Dahlen氏は、ミネソタ州北部の故郷に戻り、コンデンサ探しから始まった数十年にわたる旅を終えました。彼の物語はこちらからお読みください。


