用戶登陸
免費注冊
找回密碼
站內短信
論壇搜索
工控下載
用戶名
密碼
輸入驗證碼:
電腦
綜合討論
資料互助
程序樣例
三菱工控
西門子區
歐姆龍區
觸摸屏區
工控人家園
西門子工控論壇
如何讓S7-200產生一個隨機數??
上一主題
下一主題
liangyangli
級別: 家園?
發送短信
加為好友
精華主題:
0
發帖數量:
17 個
工控威望:
560 點
下載積分:
848 分
在線時間: 183(小時)
注冊時間:
2009-11-25
最后登錄:
2014-09-03
查看liangyangli的
主題
/
回貼
樓主
發表于: 2013-04-05 01:04
只看樓主
|
小
中
大
S7200 PLC都沒有隨機函數指令,但有時工藝還是需要的,如何生成呢?求高手指教
分享
cvlsam
富士低壓,POD(觸摸屏),PLC專賣
級別: VIP會員
發送短信
加為好友
精華主題:
3 篇
發帖數量:
6815 個
工控威望:
38419 點
下載積分:
11558 分
在線時間: 9722(小時)
注冊時間:
2006-09-13
最后登錄:
2025-07-26
查看cvlsam的
主題
/
回貼
1樓
發表于: 2013-04-05 08:02
只看該作者
|
小
中
大
先描述一下何種工藝需要隨機數,難道雙色球?然后我告訴你如何生成偽隨機數的方法。
Good Luck~
分享
月澤
時間嘛!就象乳溝,擠一擠總歸還是有的!
級別: 工控俠客
發送短信
加為好友
QQ聯系
精華主題:
1 篇
發帖數量:
1285 個
工控威望:
2921 點
下載積分:
4511 分
在線時間: 642(小時)
注冊時間:
2009-03-28
最后登錄:
2024-12-04
查看月澤的
主題
/
回貼
2樓
發表于: 2013-04-05 20:26
只看該作者
|
小
中
大
我感覺 樓主在搞什么賭博機啊 哈哈
揭開神秘的工控面紗
QQ:2631001081
Emal:strong20671713@163.com
分享
shfxfa
級別: 家園?
發送短信
加為好友
QQ聯系
精華主題:
0
發帖數量:
640 個
工控威望:
810 點
下載積分:
2908 分
在線時間: 411(小時)
注冊時間:
2011-09-09
最后登錄:
2013-11-20
查看shfxfa的
主題
/
回貼
3樓
發表于: 2013-04-06 11:53
只看該作者
|
小
中
大
產生隨機數的話應該是搞賭博機,而且這個隨機數是可控的,我以前有個同事用三菱的PLC加觸摸屏做過,有大奔寶馬奧迪捷達啥的。
分享
zedy888
回收 西門子PLC,存儲卡,觸摸屏,變頻器
級別: 家園?
發送短信
加為好友
QQ聯系
精華主題:
0
發帖數量:
1259 個
工控威望:
709 點
下載積分:
750 分
在線時間: 1200(小時)
注冊時間:
2010-09-23
最后登錄:
2025-06-27
查看zedy888的
主題
/
回貼
4樓
發表于: 2013-04-06 17:41
只看該作者
|
小
中
大
恰好本人也對此有過研究,現貼出供大家研究,可以用狀態圖監控效果。
偽隨機數的產生,現在用得較多的是“線性同余法"
公式 = R(n+1) = [R(n) * a + b] mod c
為使隨機數分布盡量均勻,a、b 均為質數, c 一般取值域內的最大值(mod 是求余數)
從這個式了可以看出,每次產生的隨機數都跟上一次產生的數有關系,
那么,第一個數是怎么來的呢?這就是線性同余法中必須用的的”種子",
也就是說,給定某個種子后,所產生的隨機數序列是固定的,在計算機編程中,
一般使用系統時間來初始化種子,就是前面代碼中的 srand((unsigned)time(NULL));
這一句了。因為每次運行程序的時間肯定不一樣,所以產生散列肯定也不一樣,
從而達到“隨機”的目的。
a,b,c 的取值我用的是 a=3373, b=1, c=32768
下面的兩個子程序是我在我的項目(S7-200 226)中產生隨機的系統編號用的,
因為我的編號中只有4位數采用了隨機數,所以下面的程序中用的是整型,
最大范圍為32767。如果需要更寬范圍的隨機數,可以采用雙字類型,
并適當修改程序,代碼很簡單,就是將上面那個表達式用 S7-200 的指令表示出來就行了。
這兩個子程序是從 MicroWIN V4.0 中導出來的,
可以將它們用文本編輯器保存為 AWL 文件后直接導入 MicroWIN。
使用時在第一個掃描周期調用 Srand 初始種子,需要隨機數的地方調用 Random
Random 有了個最大范圍參數,可以限制生成的隨機數的最大范圍,
比如我只需要4位隨機數,所以一般這樣調用 CALL Random, 10000, vw0,生成的數就在 0-9999 范圍內
下面是代碼:
SUBROUTINE_BLOCK Srand:SBR17
TITLE=初始化隨機數種子
//
// 直接使用系統時鐘的分秒來作為種子
VAR_OUTPUT
seed:WORD;
END_VAR
BEGIN
Network 1
LD SM0.0
TODR VB1990
Network 2
LD SM0.0
BTI VB1994, AC1
SLW AC1, 8
BTI VB1995, AC3
+I AC3, AC1
MOVW AC1, LW0
END_SUBROUTINE_BLOCK
SUBROUTINE_BLOCK Random:SBR16
TITLE=隨機數發生器
//
// 線性同余法獲取偽隨機數,范圍:0~32767
//
// seed = (seed * 3373 + 1) % 32768;
//
VAR_INPUT
wMax:WORD; // 最大范圍
END_VAR
VAR_OUTPUT
wOut:WORD;
END_VAR
BEGIN
Network 1
// wSeed * 3373 + 1 => AC1
LD SM0.0
ITD VW1940, AC1
*D 3373, AC1
INCD AC1
Network 2
// AC1 mod 32768 => wSeed
LD SM0.0
MOVD AC1, AC3
/D +32768, AC3
*D 32768, AC3
-D AC3, AC1
DTI AC1, VW1940
Network 3
// wSeed / 32768 * wMax => wOut
LD SM0.0
DTR AC1, AC1
/R 32768.0, AC1
ITD LW0, AC3
DTR AC3, AC3
*R AC3, AC1
ROUND AC1, AC1
DTI AC1, LW2
END_SUBROUTINE_BLOCK
[ 此帖被zedy888在2013-04-06 17:50重新編輯 ]
長期回收西門子 PLC 變頻器,觸摸屏,成套伺服等,電微:I8I2I923860注明二手電氣
分享
上一主題
下一主題
工控人家園
西門子工控論壇
如何讓S7-200產生一個隨機數??
http://www.wentianyingyuan.com
訪問內容超出本站范圍,不能確定是否安全
繼續訪問
取消訪問
精品国产一区二区三区AV蜜|一本加勒比HEZYO无码|91在线无码精品秘 入口九|天天干天天日天天射|亚洲无码私人影院