先建一個(gè)功能塊FC,功能FC采用SCL語言來編寫,具體按照如下步驟:
1、在設(shè)計(jì)功能時(shí),先確定好,它的具體功能,比如:是想獲取一個(gè)隨機(jī)實(shí)數(shù),該隨機(jī)實(shí)數(shù)是可以定義數(shù)值范圍,還要考慮一些錯(cuò)誤代碼,該例子定義了三個(gè)錯(cuò)誤狀態(tài)碼,16#7000(無當(dāng)前任務(wù))、16#0000(任務(wù)完成)、16#8200(最大值小于最小值)。
2. 新建一個(gè)FC功能塊,命名為random number(FC1) 然后定義接口變量。如下圖:
變量名稱很清晰地描述了變量功能,這里不逐一解釋
3、就是開始寫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 無符號(hào)長整型數(shù)需要四個(gè)字節(jié),每個(gè)字節(jié)和系統(tǒng)時(shí)間納秒的四個(gè)字節(jié)分別對(duì)應(yīng),實(shí)際上#tempRandomValue就已經(jīng)是一個(gè)隨機(jī)的無符號(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、 打開模擬器運(yùn)行 ,如下圖所示,數(shù)據(jù)隨機(jī)變化
審核編輯:湯梓紅
-
plc
+關(guān)注
關(guān)注
5007文章
13109瀏覽量
461470 -
接口
+關(guān)注
關(guān)注
33文章
8449瀏覽量
150726 -
西門子
+關(guān)注
關(guān)注
93文章
2996瀏覽量
115495 -
tia
+關(guān)注
關(guān)注
1文章
81瀏覽量
28058 -
SCL
+關(guān)注
關(guān)注
1文章
239瀏覽量
17025
原文標(biāo)題:西門子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)先 登錄
相關(guān)推薦
評(píng)論