![見出し画像](https://assets.st-note.com/production/uploads/images/107662132/rectangle_large_type_2_720cbe5ff7e29b246ea5f2bd47b36123.jpeg?width=1200)
三菱QシーケンサのST言語
三菱QシリーズでST言語を使った時の覚え書きです。(ST言語を使うとPLCでも高級言語のような記述をする事ができます。)
困った事
三菱QシリーズでST言語を使った時、実デバイスに32bitで代入できない事が発覚し、大変困りました。(Rシリーズはできるようになっています。)
![](https://assets.st-note.com/img/1686174895258-Wrujj4LyoU.png)
D100 := D10 * 100; ←16bitで代入される
D100 := INT_TO_DINT(D10) * 100; ←型が一致しません
D100:D := INT_TO_DINT(D10) * 100; ←構文が解析できません。(Rシリーズの記述方法)
解決方法
グローバルラベルにデバイスを32bitで登録すると代入する事ができます。
![](https://assets.st-note.com/img/1686174058207-efCaav6f7l.png)
NUM100 := INT_TO_DINT(D10) * 100;
応用例
シンプルモーションのように大量のデバイスがある場合でも、先頭デバイスだけをインデックス付きで登録すれば、ST言語側に処理を持って行く事ができます。
![](https://assets.st-note.com/img/1686174296805-KP8JePLKmP.png)
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;
・・・