内容 [=
D10 K100]------------[MOVP K1 D400] 1. 上記コードを簡単にしたい。 質 問者は既にこの様な記述を50行以上も書いているそうです・・・ |
|
・
左の画像をクリックすると、大きい画像が表示されます。 他に回答された方で、「FOR〜NEXTで回す」と言うコードが有りましたが・・・それもループ回数に限りがあり スキャン時間が無駄なだけです。 入力〜出力の関係を見てみると、一次関数であることがわかります。 【 D400 = D10 / 5 - 19 】であることが分かります。それでは解説します。 1行目 :PLC起動時の初期化。 4行目 :転送元[DM10]が前回と変化し、なおかつ[DM10]が設定範囲([LOW]〜[UPP]の間の値)なら、[DM400]の値を計算し代入。 8行目 :演算ルーチン。[DM100]の値が5で割切れなければ0を返し、それ以外は演算結果を返す。 9行目 :4行目の <LDA DM10> でレジスタに代入された値を5で割り、一時記憶[TMP]する。余りが0(5で割切れた)なら 答え[TMP]から19を引く。 10行目 :余りが0でなかったら(5で割切れない)0をレジスタに代入。 12行目 :PLC起動時の初期化ルーチン。 13行目 :[DM10]の変化を見る[MEM]と転送元[DM10]、転送先[DM400]をクリア。 14行目 :[DM10]の上限を200、上限を100に設定。 15行目 :初期化済フラグをセット。 |
|
・
左の画像をクリックすると、大きい画像が表示されます。 シミュレーションできる方は下欄からプログラムコードと登録モニタをダウンロードしてください。 DM10の現在値にカーソルをあわせ、数値を入力してください。 DM400の値が変化します。 |
|
●PDFを表示 ●コードをダウンロード ●登録モニタをダウンロード |