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