一. Step7中的兩種時間變量 TIME 和 S5TIME
本文引用地址:http://m.butianyuan.cn/article/201612/330056.htm #TIME格式的時間變量: 占4字節(jié), 本質上是一個interger型變量, 單位ms.
S5#TIME格式的時間變量: 占2字節(jié), 表示成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字節(jié), 此處指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對應內存.
評論