IEC Timerについてメモしたいと思います。IEC-TimerはSiemensの内部TimerでS7-300、400にはTON,TOFF,TPULSE3つがあります。今回私が使ったのはTONなのでこれだけに説明しますね(でも他の2つとあまり変わらないので賢いみんなさんはすぐ分かると思います。)
Step#1
まずはNETWORKに新しいブロッグを追加し、TONを入力してください。名前は好きにしてくださいねー僕はここでT_Pulseを命名します。
Step#2
TONが追加されるとき必ず上の画面が出るんです。1つのIEC Timerは1つのDBを使用するんです(なぜ?などは聞かないでくださいね、そういうルールです。)その時定義されたのDBが2種類がありまして、1つは独立なDBを追加しつまり”Single Instance”です。もう1つの方法は”Static”という形でFBの中に定義する。(FCは独立のDBしか追加できません。なぜならFCがメモリ付きではないから)ここでは2つ目の方法ーStaticという形でFBの中に定義する方法を使用します。
Step#3
Static形のIEC Timerを使いしたあと、FBのStatic変数の処に一気に一列の変数が増えてきました。ここでは一番大事なIN、PT、QとETについて説明しますね。
INは文字通りTimerの入力です。INが1になるとTimerが計時始まります。
PTはPresent-Timeのことです。つまり設定時間です。
ETはCurrent-Timeのことです。つまり現在の時間値です。
Qはコイルです。PTの設定時間経つと出力することになります。
これはIN、Q、ETとPTのタイムチャートです。
Example
これはIEC-Timerを使って簡単な2sPulse信号を作るのプログラムです。
Network1ー基本の使え方。T_Pulse.INは”IN”の信号でENの処に付けてTimerをTriggerするかどうかの条件です。PTは時間設定でSiemensは三菱とか違ってK10=1sとかと違ってIEC-Timerでは直接に時間を入力することができます。”4s”を入力すれば4秒になり、1M4Sなら1分4秒になります。
Network2ーこれは簡単な出力テストです。Timerがオンになるとプラス1だけです。
Network3ーNOT信号逆する功能があります。もしT_Pulse.Qがオンしてないとき(つまり設定時間まだ過ぎてない時)にT_Pulse.INを出力し、Timerを維持します。T_Pulse.Qはオンしてる時(つまり設定時間についたの時)に一瞬T_Pulse.INへの出力をオフします。そうするとT_Pulse.Qまたオフになり、またT_Pulse.INを出力しますというサイクルです。
Network4ーもしT_Pulse.ETが2000ms以内の時(つまり2秒に経てない時)は”2sPulse”をセットします。もしT_Pulse.ETが2000ms超えた時をリセットします。これによって2秒オン、2秒オフの信号が作ることができます。