«前の日記(2016年12月14日) 最新 次の日記(2016年12月20日)» 編集

一往確認日記


2016年12月19日 [長年日記]

_ Escalator初期化

Escalatorというのは、各種PLCがメーカーや機種毎にプロジェクトデータが異なるため互換性がなく、移植するのが大変なのを解決しようとするものです。

ここのescalatorのカテゴリーを見てもらえると今までの経緯を見てもらうことができます。

PLCの実装という事で書き始めましたが、データ領域の定義のところまでで中断していました。 今回は初期化のところです。

実装に際して自分にとって分かりやすいST言語で実装する事にしました。 ラダーの方がブログラムサイズの削減や高速化が可能と思いますが、メンテナンスのしやすさ重視とします。

プログラムデータを順番に読んでいく事になるので、どこを読み込むか管理するカウンター(ポインター)が必要になります。 ローカルラベルでprogram_counterとして定義していて、PLC起動1サイクルのタイミングで0にしています。 SD_DEVICE[ESC_SD_TO_PLC_STATUS]、SD_DEVICE[ESC_SD_FROM_PLC_STATUS]はパソコン側との通信で用いるフラグになっています。 この値で同期をとって通信していきます。 初期値として0を入れています。

https://gyazo.com/0f4d104b171ea1a68d1fe5bed69b182b

memory_countとerrorがありますが今は使っていないと思うので削除しても良いかもしれません。

PS. 更新を怠ってしまいましたが、Macが起動しなくなってしまい復旧作業に追いやられてしまったりしてました。