加入收藏 在線留言 聯系我們
        關注微信
        手機掃一掃 立刻聯系商家
        全國服務熱線13185520415
        公司新聞
        西門子PLC用TIA博途SCL語言寫的一個產生隨機實數的指令塊
        發布時間: 2024-09-01 21:30 更新時間: 2024-11-22 08:00
        觀看西門子PLC用TIA博途SCL語言寫的一個產生隨機實數的指令塊視頻

        這是西門子的一個功能FC,我們可以用它來學習SCL語言,也可以用來分析和學習怎樣做一個比較合理且完整的功能FC。

        1. 在設計該功能時,先確定好,它的具體功能,比如:此例的功能是獲取一個隨機實數,該隨機實數是可以定義在自己想要的數值范圍內的,還要考慮一些錯誤代碼的定義,該例子定義了三個錯誤狀態碼,16#7000(無當前任務)、16#0000(任務完成)、16#8200(Zui大值小于Zui小值)。

        2. 這里使用一個FC塊,首先定義變量。如下圖:


        由于變量名稱很清晰地描述了變量功能,所以不逐一解釋。

        3. 程序段1。如下圖:



        塊內變量初始化,三個變量分別賦值0、1、16#7000。

        4. 程序段2。如下圖:

        檢查輸入范圍變量,是否出現Zui小值大于Zui大值的情況。

        5. 程序段3。如下圖:

        讀系統時間,用納秒,使用納秒的隨機性。判斷讀系統時間是否有誤,如果有誤,給狀態變量賦值。

        6. 程序段4。如下圖:

        無符號長整型數需要四個字節,每個字節和系統時間納秒的四個字節分別對應,實際上#tempRandomValue就已經是一個隨機的無符號整型數了。
        7. 程序段5。如下圖:

        對#tempRandomValue進行標準化操作,使其變成0.0~1.0之間的一個數據,然后再逆標準化,使這個隨機數產生于我們要求的Zui小值和Zui大值之間。

        8. 功能調用。如下圖:

        要生成100.0~1000.0之間的隨機數,以上為效果,每個掃描周期產生一個隨機實數,監控顯示隨機數468.7597。

        聯系方式

        • 電  話:13510737515
        • 聯系人:董海波
        • 手  機:13185520415
        • 微  信:13185520415