870605
愛(ài)拼才會(huì)贏
級(jí)別: 論壇先鋒
精華主題: 0
發(fā)帖數(shù)量: 135 個(gè)
工控威望: 1503 點(diǎn)
下載積分: 535 分
在線時(shí)間: 93(小時(shí))
注冊(cè)時(shí)間: 2008-02-15
最后登錄: 2024-11-27
查看870605的 主題 / 回貼
樓主  發(fā)表于: 2011-06-09 11:15
程序流控制(00-09)

CJ (P)條件跳轉(zhuǎn)指令用于跳過(guò)順序程序中的某一部分,可以減少掃描時(shí)間,并使“雙線圈操作”成為可能
目標(biāo)操作元件:指針P0——P63(允許變址修改)
即跳轉(zhuǎn)目標(biāo)由指針P0-P63指定(允許變址修改)。P63 即END步。
使用格式: LD   X0
           CJ(P)   P0
           :
           :
           P0
           :  
           :
           END
當(dāng)X0由OFF到ON時(shí),程序直接跳到P0處,向下執(zhí)行到程序結(jié)束。
當(dāng)用連續(xù)方式執(zhí)行CJ時(shí),條件滿足時(shí),每個(gè)掃描周期執(zhí)行一次。
(1)    跳轉(zhuǎn)指令有效時(shí)跳轉(zhuǎn)段內(nèi)的程序跳過(guò),PLC不掃描,
(2)    跳轉(zhuǎn)前跳轉(zhuǎn)段內(nèi)已有自我保持的線圈,或以SET 的線圈,跳轉(zhuǎn)后線圈仍保持,但可通過(guò)跳轉(zhuǎn)外程序改變。積算定時(shí)器/計(jì)數(shù)器保持當(dāng)前值,非積算型復(fù)位,高速計(jì)數(shù)器仍工作。
(3)    從主控區(qū)外跳到主控區(qū)內(nèi)時(shí),跳轉(zhuǎn)獨(dú)立于主控操作,不管MC狀態(tài)如何,均作ON處理。
(4)    從主控內(nèi)跳轉(zhuǎn)時(shí),MC為OFF時(shí),不執(zhí)行,為ON時(shí)可跳轉(zhuǎn)可跳到主控區(qū)外。
(5)    T192---T199(100ms定時(shí)器);C235----C255(高速計(jì)數(shù)器)一經(jīng)驅(qū)動(dòng),既是跳過(guò),也仍工作,輸出觸點(diǎn)也動(dòng)作。

CALL(P)轉(zhuǎn)子程序
SRET 子程序返回。

目標(biāo)操作元件:P0——P62(允許變址修改)
使用格式:LD   X0
          CALL(P)  P0
          :
          :
          :
          FEND
          P0
          :
          :
          SRET
          END
當(dāng)X0由OFF變?yōu)镺N時(shí),程序直接跳到P0處,向下執(zhí)行,到SRET時(shí),返回跳轉(zhuǎn)處再向下執(zhí)行。
注意:(1)當(dāng)用連續(xù)方式執(zhí)行CALL時(shí),執(zhí)行條件滿足時(shí)每個(gè)掃描周期執(zhí)行一次。
(2)轉(zhuǎn)移目標(biāo)由P0-P62指定(允許變址修改)但CJ中用過(guò)的標(biāo)號(hào)不可再用。不同的CALL可調(diào)用同一子程序。
(3)    P必須在主程序結(jié)束FEND后也就是說(shuō)子程序必須寫(xiě)在主程序結(jié)束FEND后。
(4)CALL調(diào)用的子程序必須以SRET結(jié)束
(5)在子程序內(nèi)可再用CALL子程序,形成嵌套,最多5級(jí)。
(6)子程序中定時(shí)器范圍T192-T199和T246-T249。


IRET 中斷返回,從中斷子程序返回中斷點(diǎn),即子程序結(jié)束。
EI 允許中斷
DI 禁止中斷

指令EI 與DI之間的程序段為允許中斷區(qū)間。當(dāng)處理到允許中斷區(qū)間時(shí),中斷請(qǐng)求為ON 態(tài),則轉(zhuǎn)而處理相應(yīng)的中斷子程序。子程序處理到IRET指令知返回?cái)帱c(diǎn)。
在禁止中斷區(qū)間(即EI 與DI以外)有中斷事件發(fā)生,則PLC 記住該中斷,留待EI指令后執(zhí)行。
相應(yīng)的特殊輔助繼電器置1時(shí),中斷程序不能執(zhí)行。例如,當(dāng)M805△置1時(shí),相應(yīng)的中斷I△★★不執(zhí)行
在執(zhí)行中斷程序時(shí),其它中斷禁止,但可在中斷程序內(nèi)編入中斷,可實(shí)現(xiàn)2級(jí)嵌套。
中斷程序中用定時(shí)器為T(mén)192——T199和T246——T249。
(1)    中斷子程序必須寫(xiě)在主程序結(jié)束FEND后。
(2)    中斷子程序必須以IRET返回
中斷類型見(jiàn)元件“指針”


FEND 主程序結(jié)束,表示主程序結(jié)束。執(zhí)行到FEND指令時(shí)機(jī)器進(jìn)行輸出處理、輸入處理、警戒時(shí)鐘刷新,完成以后返回0步。
(1)    子程序必須寫(xiě)在FEND之后,即CALL、CALL(P)指令對(duì)應(yīng)的標(biāo)號(hào)必須寫(xiě)在FEND 指令之后。CALL、、CALL(P)指令調(diào)用的 子程序必須以SRET指令結(jié)束。
(2)    中斷子程序也必須寫(xiě)在FEND之后,必須以IRET結(jié)束。
(3)    FEND 也不可出現(xiàn)在FOR-NEXT循環(huán)之中。

WDT(P)警戒時(shí)鐘。
WDT指令刷新順序程序的警戒時(shí)鐘。如果掃描(從0步到END或FEND指令)超過(guò)200ms,PLC將停止。在這種情況下,應(yīng)將WDT指令插到合適位置中刷新警戒時(shí)鐘,以使順序程序執(zhí)行到END。
掃描周期的缺剩設(shè)置為200ms,如果希望改變掃描時(shí)間,可通過(guò)MOV改變D8000的值。
使用格式:LD   X0
          WDT(P)
當(dāng)X0由OFF變ON時(shí),WDT(P)執(zhí)行一次刷新。
當(dāng)為連續(xù)方式執(zhí)行WDT時(shí),執(zhí)行條件滿足時(shí)每個(gè)掃描周期執(zhí)行一次。
(1)    當(dāng)與CJ指令對(duì)應(yīng)的標(biāo)號(hào)的步序低于CJ指令時(shí)(即CJ跳到的位置在其前面時(shí))在標(biāo)號(hào)P后編如WDT指令。
(2)    M8039置位時(shí),PLC 改以定時(shí)掃描方式運(yùn)行,掃描時(shí)間由D8039指定。可通過(guò)MOV傳送改變D8039數(shù)值。

FOR循環(huán)區(qū)起點(diǎn),后面加Kn,循環(huán)n次。
NEXT 循環(huán)區(qū)終點(diǎn)

操作元件:K/H  KnX  KnY  KnM  KnS  T  C  D  V/Z
使用格式:FOR    K4
          :
          :
          NEXT
          :
          END
FOR——NEXT間的程序執(zhí)行4次,再執(zhí)行NEXT指令以后的程。
(1)    可嵌套5級(jí)
(2)    循環(huán)次數(shù)1——32767
[ 此帖被870605在2011-06-09 11:24重新編輯 ]
本帖最近評(píng)分記錄:
  • 下載積分:+1(消失12356) 好貼好貼!
  • 愛(ài)拼才會(huì)贏 .