PLCラダーの覚え書き

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に乱数値が符号無し整数で格納されます。