應(yīng)用領(lǐng)域 | 電子 |
---|
6ES7518-4AX00-1AC0
SIMATIC S7-1500, CPU 1518-4 PN/DP MFP, inclusive C/C++ Runtime and OPC UA Runtime license working memory 4 MB for program and 20 MB for data, 1. in
參考價 | 面議 |
更新時間:2023-07-16 14:08:50瀏覽次數(shù):302
聯(lián)系我們時請說明是化工儀器網(wǎng)上看到的信息,謝謝!
6ES75184AX001AC0西門子CPU模塊S7-1500
6ES7518-4AX00-1AC0 SIMATIC S7-1500, CPU 1518-4 PN/DP MFP, inclusive C/C++ Runtime and OPC UA Runtime license working memory 4 MB for program and 20 MB for data, 1. interface: PROFINET IRT with 2 port switch, 2. interface: PROFINET RT, 3. interface: Ethernet, 4. interface: PROFIBUS, 1 ns bit-performance, SIMATIC memory card (min. 2 GB) necessary |
在PL編程時,我們經(jīng)常會忽略語句中臨時參數(shù)重復(fù)使用的的問題,在調(diào)試程序時,分析當前語句好似沒有問題,只有放到整個程序中檢查才能發(fā)現(xiàn),這是由于PLC循環(huán)掃描的工作機制導(dǎo)致的。這種現(xiàn)象的處理可以按下示方法解決。
問題程序
現(xiàn)有示例程序如下:
在分析上述語句時,當”start”變量被置為”1”時,”on delay”接受能流,變量被置位,能夠?qū)崿F(xiàn)自鎖。但在仿真時,程序段1中的”on delay”變量并沒有被置位,而只有程序段2上的”on delay”變量被置位。仿真結(jié)果如下圖所示。
可以看出,以上程序由于程序段1中的”on delay”變量無法被置位而不能實現(xiàn)自鎖。
問題分析
PLC的工作方式是從上到下、由左至右地循環(huán)掃描,而”on delay”變量屬于Temp—臨時變量,只有在PLC的一個循環(huán)周期內(nèi),”on delay”變量能夠保持,一個循環(huán)周期結(jié)束后,分配給”on delay”變量的存儲空間被釋放。
在上述程序的個循環(huán)周期中,程序段1左邊的變量”start”被置位,而”on delay”變量沒有被置位,程序段1右邊的變量”on delay”由于”start”被置位而接受能流;程序段2左邊的變量”on delay”由于接受能流而被置位;一個循環(huán)周期結(jié)束后,”on delay”的存儲空間被釋放,”on delay”變量又被復(fù)位,在第二個循環(huán)周期中,程序段1左邊的”on delay”變量依然不能被置位。
解決方案
采用FB程序塊對上述程序進行編程,并將”on delay”變量設(shè)為Static——靜態(tài)變量,程序如下所示。
實驗結(jié)果如下所示。
可見,程序段1中左側(cè)的”on delay”變量被成功置位,改程序能夠?qū)崿F(xiàn)自鎖。
總結(jié)
臨時變量可以用于所有塊中 (OB, FC, FB)。當塊執(zhí)行的時候它們被用來臨時存儲數(shù)據(jù),當退出該塊時這些數(shù)據(jù)將丟失。因此, 在PLC掃描運行時, FC塊中的臨時變量Temp不能自鎖。
如果FC塊,可以使用全局變量(標志位和數(shù)據(jù)塊)來存儲數(shù)據(jù),實現(xiàn)自鎖。
如果FB塊,除了全局變量之外,也可以使用靜態(tài)變量來存儲數(shù)據(jù),實現(xiàn)自鎖。
6ES75184AX001AC0西門子CPU模塊S7-1500