PLCのラダーのあれこれ
セクション9:疑似乱数発生プログラム
最近PLCの命令も増えて、高機能命令が増えたため昔自作していた グレーコード変換や乱数発生もPLCの持つ命令で実行出来る様になりましたが、 動作の勉強をかねて昔作った疑似乱数発生ラダーを備忘録として残す。 1.初期値の設定 static unsigned long x=123456789;//(D200) y=362436069;//(D202) z=521288629;//(D204) w=88675123; //(D206) 2.SEEDを日時から生成する w=seed; x=seed<<16+seed>>16; y=w+x; z=x^y; 3.乱数発生 unsigned long t; t=x^(x<<11); x=y;y=z;z=w; return(w=w^(w>>19))^(t^(t>>8)); M10がONでSEEDが設定され、M20がONしたらD206に乱数値が符号無し整数で格納されます。