先建一個功能塊FC,功能FC采用SCL語言來編寫,具體按照如下步驟:
1、在設計功能時,先確定好,它的具體功能,比如:是想獲取一個隨機實數,該隨機實數是可以定義數值范圍,還要考慮一些錯誤代碼,該例子定義了三個錯誤狀態碼,16#7000(無當前任務)、16#0000(任務完成)、16#8200(最大值小于最小值)。
2. 新建一個FC功能塊,命名為random number(FC1) 然后定義接口變量。如下圖:
變量名稱很清晰地描述了變量功能,這里不逐一解釋
3、就是開始寫FC1功能塊程序了 ,程序如下圖所示:
程序共5個程序段:
程序段1 塊內變量初始化,三個變量分別賦值0、1、16#7000。
程序段2 檢查輸入范圍變量,是否出現最小值大于最大值的情況。
程序段3 讀系統時間,用納秒,使用納秒的隨機性。判斷讀系統時間是否有誤,如果有誤,給狀態變量 賦值。
程序段4 無符號長整型數需要四個字節,每個字節和系統時間納秒的四個字節分別對應,實際上#tempRandomValue就已經是一個隨機的無符號整型數了。
程序段5 對#tempRandomValue進行標準化操作,使其變成0.0~1.0之間的一個數據,然后再逆標準化,使這個隨機數產生于我們要求的最小值和最大值之間。
4,新建一個全局背景DB,如下圖所示
5 、再主程序OB1中調用FC1
左側為數值的范圍,可以自己隨便定義 右側為輸出數字和錯誤代碼
6、 打開模擬器運行 ,如下圖所示,數據隨機變化
審核編輯:湯梓紅
-
plc
+關注
關注
5016文章
13388瀏覽量
465427 -
接口
+關注
關注
33文章
8694瀏覽量
151928 -
西門子
+關注
關注
95文章
3062瀏覽量
116452 -
tia
+關注
關注
1文章
82瀏覽量
28167 -
SCL
+關注
關注
1文章
239瀏覽量
17177
原文標題:西門子PLC TIA博途生成隨機數
文章出處:【微信號:非標設備自動化設計,微信公眾號:非標設備自動化設計】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
西門子PLC編程軟件博途下載
博圖如何實現遠程調試西門子PLC
西門子PLC產生隨機數
![<b class='flag-5'>西門子</b><b class='flag-5'>PLC</b>產生<b class='flag-5'>隨機數</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
基于TIA搭建西門子PLC仿真環境及通信方案
![基于<b class='flag-5'>TIA</b>搭建<b class='flag-5'>西門子</b><b class='flag-5'>PLC</b>仿真環境及通信方案](https://file1.elecfans.com//web2/M00/8D/CE/wKgZomTAebCACQTiAABdD4b3_TA00.jpeg)
西門子1200PLC和西門子1500PLC的ModbusRTU通訊
![<b class='flag-5'>西門子</b>1200<b class='flag-5'>PLC</b>和<b class='flag-5'>西門子</b>1500<b class='flag-5'>PLC</b>的ModbusRTU通訊](https://file1.elecfans.com/web2/M00/94/68/wKgaomTlXgWAcuboAAAbw9UShcs258.jpg)
PLC輸出0~100之間的隨機數編寫
![<b class='flag-5'>PLC</b>輸出0~100之間的<b class='flag-5'>隨機數</b>編寫](https://file1.elecfans.com/web2/M00/A9/72/wKgZomUmI6CAI9BPAAAZfZxcZmg389.png)
評論