新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > WinCC顯示和更改PLC中的"時間變量"

        WinCC顯示和更改PLC中的"時間變量"

        作者: 時間:2016-12-14 來源:網絡 收藏

        一. Step7中的兩種時間變量 TIME 和 S5TIME

        本文引用地址:http://www.104case.com/article/201612/330056.htm

        #TIME格式的時間變量: 占4字節, 本質上是一個interger型變量, 單位ms.

        S5#TIME格式的時間變量: 占2字節, 表示成16進制為 W#16# wxyz ,
        其中w表示時基: w=0,1,2,3時, 對應的時基依次為10ms, 100ms, 1s,10s
        xyz以BCD碼格式表示數值: xyz=123就表示123個時基.范圍0~999.

        二. WinCC中顯示和修改 #TIME 格式變量.

        新建32位浮點變量, 調整格式選 FloatToUnsignedDWord. 地址選中PLC中#TIME變量地址, 即可!
        此時, 浮點變量是以ms為單位的時間值. 如需以s位單位, 線性標定里, 修改量程 使倍數為1000倍.

        畫面中配置IO文本域, 關聯到新建的浮點變量, 即可顯示并修改. 內容來自www.dqjsw.com.cn電氣自動化技術網

        三. WinCC中顯示和修改 #S5#TIME 格式變量值.

        新建32位浮點數變量, 調整格式選 FloatToSimaticBCDTime, 地址選中PLC中S5TIME地址, 即可!
        此時, 浮點變量是以ms為單位的時間值. 如需以s位單位, 線性標定里, 修改量程 使倍數為1000倍.

        畫面中配置IO文本域, 關聯到新建的浮點變量, 即可正常顯示. 經測試, 不把IO文本域的"輸出格式"屬性
        修改為"字符串" (保持缺省的"10進制"格式), 同樣可以正確修改.

        需要注意的是, 由于S5TIME的限制, 并不能始終精確到10ms. 根據輸入的值, WinCC會自動將之整定到對應的時基上. 比如: 輸入100.5s時, 已經不能用100ms時基(在范圍0-99.9s范圍可用), 只能用1s的時基, 所以WinCC將輸入整定為100.0s并寫入PLC.

        四. WinCC中定義變量窗口分析.

        上圖為WinCC中設置修改S5TIME值的變量定義圖,

        變量值: 選32位浮點數,4字節, 此處指WinCC中新建的變量為32位浮點型.
        調整格式: 選FloatToSimaticBCDTime, 說明此Float變量, 經轉化為 SimaticBCDTime(ms為單位)類型后, 與PLC中S5TIME變量相關聯.
        所謂格式調整, 調整方向為: 變量值--->過程值.
        過程值地址選擇: 此處指PLC中 S5TIME變量的地址.

        線性標定: 指定 "變量值"(WinCC中變量) 與 "過程值"(PLC中變量值并經轉化為臨時float型) 的線性轉化關系,
        所謂的上下限, 并不是說要限制不能超限, 僅僅是為了得到"線性因子"和"線性偏移量".
        因此, 設定成 [0, 1000] -->[0,1.000] (零點不偏移, 轉化因子1000倍),
        與設定成 [0, 9990]-->[0,9.990] (也是因子1000), 二者效果是完全相同的!

        上面的設置, 顯示時的數據流為:

        PLC中S5Time變量值 ---> 從SimaticBCDTime到Float的類型轉換(以ms為單位的數值) --->Float值(ms為單位)線性轉化,即縮小1000倍 ----> 轉化結果賦值給 TimeTag2變量(32位浮點型)

        寫入PLC時數據流方向剛好相反:

        TimeTag值 ---> 擴大1000倍的線性轉化 ---> 轉化結果進行類型轉換: 從float到SimaticBCDTime---> 轉化得到的S5Time格式, 更新到PLC對應內存.




        關鍵詞: WinCCPLC時間變

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 温州市| 永吉县| 芜湖市| 五莲县| 忻州市| 大余县| 徐水县| 大新县| 东丽区| 遂平县| 乌鲁木齐县| 平利县| 桂阳县| 二连浩特市| 吴堡县| 囊谦县| 邳州市| 松江区| 东阳市| 临漳县| 固安县| 阿瓦提县| 清河县| 韩城市| 耒阳市| 鹤壁市| 潜山县| 图木舒克市| 宝清县| 得荣县| 金寨县| 高雄县| 东莞市| 闸北区| 儋州市| 革吉县| 栾城县| 大庆市| 宁津县| 广东省| 安仁县|