先建一個(gè)功能塊FC,功能FC采用SCL語(yǔ)言來(lái)編寫(xiě),具體按照如下步驟:
1、在設(shè)計(jì)功能時(shí),先確定好,它的具體功能,比如:是想獲取一個(gè)隨機(jī)實(shí)數(shù),該隨機(jī)實(shí)數(shù)是可以定義數(shù)值范圍,還要考慮一些錯(cuò)誤代碼,該例子定義了三個(gè)錯(cuò)誤狀態(tài)碼,16#7000(無(wú)當(dāng)前任務(wù))、16#0000(任務(wù)完成)、16#8200(最大值小于最小值)。
2. 新建一個(gè)FC功能塊,命名為random number(FC1) 然后定義接口變量。如下圖:
變量名稱(chēng)很清晰地描述了變量功能,這里不逐一解釋
3、就是開(kāi)始寫(xiě)FC1功能塊程序了 ,程序如下圖所示:
程序共5個(gè)程序段:
程序段1 塊內(nèi)變量初始化,三個(gè)變量分別賦值0、1、16#7000。
程序段2 檢查輸入范圍變量,是否出現(xiàn)最小值大于最大值的情況。
程序段3 讀系統(tǒng)時(shí)間,用納秒,使用納秒的隨機(jī)性。判斷讀系統(tǒng)時(shí)間是否有誤,如果有誤,給狀態(tài)變量 賦值。
程序段4 無(wú)符號(hào)長(zhǎng)整型數(shù)需要四個(gè)字節(jié),每個(gè)字節(jié)和系統(tǒng)時(shí)間納秒的四個(gè)字節(jié)分別對(duì)應(yīng),實(shí)際上#tempRandomValue就已經(jīng)是一個(gè)隨機(jī)的無(wú)符號(hào)整型數(shù)了。
程序段5 對(duì)#tempRandomValue進(jìn)行標(biāo)準(zhǔn)化操作,使其變成0.0~1.0之間的一個(gè)數(shù)據(jù),然后再逆標(biāo)準(zhǔn)化,使這個(gè)隨機(jī)數(shù)產(chǎn)生于我們要求的最小值和最大值之間。
4,新建一個(gè)全局背景DB,如下圖所示
5 、再主程序OB1中調(diào)用FC1
左側(cè)為數(shù)值的范圍,可以自己隨便定義 右側(cè)為輸出數(shù)字和錯(cuò)誤代碼
6、 打開(kāi)模擬器運(yùn)行 ,如下圖所示,數(shù)據(jù)隨機(jī)變化
審核編輯:湯梓紅
-
plc
+關(guān)注
關(guān)注
5039文章
14256瀏覽量
480966 -
接口
+關(guān)注
關(guān)注
33文章
9264瀏覽量
155438 -
西門(mén)子
+關(guān)注
關(guān)注
98文章
3229瀏覽量
119340 -
tia
+關(guān)注
關(guān)注
1文章
86瀏覽量
28786 -
SCL
+關(guān)注
關(guān)注
1文章
244瀏覽量
17788
原文標(biāo)題:西門(mén)子PLC TIA博途生成隨機(jī)數(shù)
文章出處:【微信號(hào):非標(biāo)設(shè)備自動(dòng)化設(shè)計(jì),微信公眾號(hào):非標(biāo)設(shè)備自動(dòng)化設(shè)計(jì)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
如何利用SystemVerilog仿真生成隨機(jī)數(shù)

西門(mén)子PLC編程軟件博途下載
用于生成隨機(jī)數(shù)的電子骰子

隨機(jī)數(shù)生成器開(kāi)源分享

如何在200 smart中生成偽隨機(jī)數(shù)

Unity3D與西門(mén)子PLC通訊

西門(mén)子PLC產(chǎn)生隨機(jī)數(shù)

西門(mén)子博圖TIA的Modbus主站通訊

基于TIA搭建西門(mén)子PLC仿真環(huán)境及通信方案

西門(mén)子1200PLC和西門(mén)子1500PLC的ModbusRTU通訊

西門(mén)子plc單按鈕啟停的十種方法(博途1200/1500PLC)

如何使用雪花算法生成真正的隨機(jī)數(shù)
PLC輸出0~100之間的隨機(jī)數(shù)編寫(xiě)

評(píng)論