機器の時計は、機器に接続した外付けのDS3231時計モジュールの日付と時刻を、機器が0.1秒ごとにD領域の16ワードに書き込み、ラダーから直接読めるようにする機能です(V1.2.0以降)。PCの時刻に合わせるウィンドウと、時計モジュールがないときに機器が自分で時刻を数える内部時計もあわせて提供します。
機器には時計モジュールが内蔵されていないため、DS3231モジュール(I²Cアドレス0x68)を機器のI²C端子に接続して使用します。接続するピンは、各製品のページで確認してください。モジュールは、キャラクターLCDなどほかのI²Cデバイスと同じ配線を共用します。
D100)。開始アドレスから16ワード(D100~D115)を使います。
ウィンドウの下部には、この機能が使うフラッシュ・RAMと処理時間(0.1秒ごとに約0.4ms)が表示されます。オフにすると、コンパイルされるプログラムは1バイトも変わりません。シンボルテーブルに名前を追加を押すと、RTC_YEAR…RTC_REQの名前がシンボルテーブルに登録され、ラダーでアドレスの代わりに名前で使えます(任意)。
値は10進数で入ります。以下は、開始アドレスがD100の場合です。
| アドレス | 読み出し(機器が0.1秒ごとに書く) | 範囲 |
|---|---|---|
D100 | 年 | 2000~2099 |
D101 | 月 | 1~12 |
D102 | 日 | 1~31 |
D103 | 曜日 | 1~7(1 = 日曜日) |
D104 | 時 | 0~23 |
D105 | 分 | 0~59 |
D106 | 秒 | 0~59 |
D107 | ステータス | 0 正常 · 1 モジュールなし(内部時計) · 2 停止したことあり |
| アドレス | 時刻合わせ(PC・HMI・ラダーが書く) | 説明 |
|---|---|---|
D108~D114 | 設定する年・月・日・曜日・時・分・秒 | 範囲は読み出しと同じです。 |
D115 | 時刻合わせ要求 | 1を書くと時刻を合わせます。完了すると0、値が不正な場合は2になります(時計はそのまま)。 |
ラダーやHMIから時刻を合わせるには、D108~D114に設定する値を書き込んでから、D115に1を書き込んでください。ステータスが2の場合は、モジュールの電池が外れるなどして時計が止まったことがあるという意味なので、時刻を合わせ直してください。
Ctrl+M)します。シミュレーション中にも使用できます。ウィンドウには、PCの時刻と機器の時刻、その差(「一致 (±1 秒)」または「機器が N 遅れ」・「機器が N 進み」)が表示されます。時刻合わせは、次の秒に切り替わる瞬間に届くように送信し、合わせた後に機器の時刻を読み直して、実際に合ったかどうかを確認します。
実際の機器のモニタリングをオンにしたときに、機器の時刻がPCと5秒以上ずれている場合は、「機器の時計が PC より N 遅れています — PC の時刻に合わせますか?」のように一度確認します。はいを押すと、上と同じ方法で時刻を合わせます。時計が止まったことがある場合(ステータス2)は、代わりにモジュールの電池の確認を促す質問が表示されます。機器のプログラムがこのプロジェクトと同じであると確認できた場合にのみ確認し、シミュレーションでは確認しません。
シミュレーションでは、仮想時計が動作します。シミュレーションの開始時にPCの時刻から始まり、シミュレーションの時間に従って進みます。一時停止や1スキャンずつの実行を行うと、PCより遅れます。シミュレーションを開始し直すと、PCの時刻に戻ります。ステータスは常に0です。ラダーのDS3231_RD・DS3231_WRファンクションも、同じ仮想時計を使います。
.mpx)は、V1.1.0では開けません。