ソフトの規模が大きくなるにつれてバグは出やすくなるものではあるが、できる限りバグを出さないためにやっておくべきことをメモしておく。
関連:読みやすいラダー
基本。
シーケンサでは積商が倍領域使うため、ダブルワードで確保する癖をつける。
使用中であることがわかるように、上位デバイスにも何でもいいのでコメントを入れておくとそこを使ってしまうミスが減る。(筆者は「D」とか「*」とか「/」を入れている)
ラベルを使えば気にしなくて済むようになるが、デバイス直接打つほうが楽なので…
シーケンサでは積商が倍領域使うため、ダブルワードで確保する癖をつける。
使用中であることがわかるように、上位デバイスにも何でもいいのでコメントを入れておくとそこを使ってしまうミスが減る。(筆者は「D」とか「*」とか「/」を入れている)
ラベルを使えば気にしなくて済むようになるが、デバイス直接打つほうが楽なので…
CAL*,CAL/ではなくMUL,DIVしてSTAするやり方なら倍領域を使用しない
その代わりDIVする時に上位領域としてテンポラリデータ(T0)も使用するという極悪仕様がある(MULのあとDIVする前提の仕様)
まあDIVの直前にEXT付ける癖を付ければいいだけではあるのだが
その代わりDIVする時に上位領域としてテンポラリデータ(T0)も使用するという極悪仕様がある(MULのあとDIVする前提の仕様)
まあDIVの直前にEXT付ける癖を付ければいいだけではあるのだが
数値デバイスに想定外の値が入ることはよくある。
例えば漸増するXで「X=a」の時何かする場合、ソフト上は「X≧a」の時に動作するようにしておくと、Xがaより大きくなったときに該当部分が動かなくなるのを防げる。初期値が0から始まる場合は「X<0]の時にXを0にリセットする処理を入れておくとより安定する。
例えば漸増するXで「X=a」の時何かする場合、ソフト上は「X≧a」の時に動作するようにしておくと、Xがaより大きくなったときに該当部分が動かなくなるのを防げる。初期値が0から始まる場合は「X<0]の時にXを0にリセットする処理を入れておくとより安定する。
FB化して使いまわすと、何かバグが出たときに対処しやすく、その後はバグ対応したものを使うことになるのでバグの危険性が減る。
FBはサブルーチンより引数(入力)や返り値(出力)がわかりやすくミスが減るので、FBが使えるならサブルーチンはすべてFBに変更していきたい。
FBはサブルーチンより引数(入力)や返り値(出力)がわかりやすくミスが減るので、FBが使えるならサブルーチンはすべてFBに変更していきたい。
コメントをかく