產(chǎn)品簡介
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
詳細(xì)介紹
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編程時(shí),我們經(jīng)常會忽略語句中臨時(shí)參數(shù)重復(fù)使用的的問題,在調(diào)試程序時(shí),分析當(dāng)前語句好似沒有問題,只有放到整個(gè)程序中檢查才能發(fā)現(xiàn),這是由于PLC循環(huán)掃描的工作機(jī)制導(dǎo)致的。這種現(xiàn)象的處理可以按下示方法解決。
問題程序
現(xiàn)有示例程序如下:
在分析上述語句時(shí),當(dāng)”start”變量被置為”1”時(shí),”on delay”接受能流,變量被置位,能夠?qū)崿F(xiàn)自鎖。但在仿真時(shí),程序段1中的”on delay”變量并沒有被置位,而只有程序段2上的”on delay”變量被置位。仿真結(jié)果如下圖所示。
可以看出,以上程序由于程序段1中的”on delay”變量無法被置位而不能實(shí)現(xiàn)自鎖。
問題分析
PLC的工作方式是從上到下、由左至右地循環(huán)掃描,而”on delay”變量屬于Temp—臨時(shí)變量,只有在PLC的一個(gè)循環(huán)周期內(nèi),”on delay”變量能夠保持,一個(gè)循環(huán)周期結(jié)束后,分配給”on delay”變量的存儲空間被釋放。
在上述程序的個(gè)循環(huán)周期中,程序段1左邊的變量”start”被置位,而”on delay”變量沒有被置位,程序段1右邊的變量”on delay”由于”start”被置位而接受能流;程序段2左邊的變量”on delay”由于接受能流而被置位;一個(gè)循環(huán)周期結(jié)束后,”on delay”的存儲空間被釋放,”on delay”變量又被復(fù)位,在第二個(gè)循環(huán)周期中,程序段1左邊的”on delay”變量依然不能被置位。
解決方案
采用FB程序塊對上述程序進(jìn)行編程,并將”on delay”變量設(shè)為Static——靜態(tài)變量,程序如下所示。
實(shí)驗(yàn)結(jié)果如下所示。
可見,程序段1中左側(cè)的”on delay”變量被成功置位,改程序能夠?qū)崿F(xiàn)自鎖。
總結(jié)
臨時(shí)變量可以用于所有塊中 (OB, FC, FB)。當(dāng)塊執(zhí)行的時(shí)候它們被用來臨時(shí)存儲數(shù)據(jù),當(dāng)退出該塊時(shí)這些數(shù)據(jù)將丟失。因此, 在PLC掃描運(yùn)行時(shí), FC塊中的臨時(shí)變量Temp不能自鎖。
如果FC塊,可以使用全局變量(標(biāo)志位和數(shù)據(jù)塊)來存儲數(shù)據(jù),實(shí)現(xiàn)自鎖。
如果FB塊,除了全局變量之外,也可以使用靜態(tài)變量來存儲數(shù)據(jù),實(shí)現(xiàn)自鎖。
6ES75184AX001AC0西門子CPU模塊S7-1500