三菱QシーケンサのST言語
三菱QシリーズでST言語を使った時の覚え書きです。(ST言語を使うとPLCでも高級言語のような記述をする事ができます。)
困った事
三菱QシリーズでST言語を使った時、実デバイスに32bitで代入できない事が発覚し、大変困りました。(Rシリーズはできるようになっています。)
D100 := D10 * 100; ←16bitで代入される
D100 := INT_TO_DINT(D10) * 100; ←型が一致しません
D100:D := INT_TO_DINT(D10) * 100; ←構文が解析できません。(Rシリーズの記述方法)
解決方法
グローバルラベルにデバイスを32bitで登録すると代入する事ができます。
NUM100 := INT_TO_DINT(D10) * 100;
応用例
シンプルモーションのように大量のデバイスがある場合でも、先頭デバイスだけをインデックス付きで登録すれば、ST言語側に処理を持って行く事ができます。
Z3 := 4318; MS16 := INT_TO_DINT(D10) * 100;
Z3 := 4418; MS16 := INT_TO_DINT(D11) * 100;
Z3 := 4518; MS16 := INT_TO_DINT(D12) * 100;
Z3 := 4618; MS16 := INT_TO_DINT(D13) * 100;
・・・