870605
愛拼才會贏
級別: 論壇先鋒
|
程序流控制(00-09) CJ (P)條件跳轉指令用于跳過順序程序中的某一部分,可以減少掃描時間,并使“雙線圈操作”成為可能 目標操作元件:指針P0——P63(允許變址修改) 即跳轉目標由指針P0-P63指定(允許變址修改)。P63 即END步。 使用格式: LD X0 CJ(P) P0 : : P0 : : END 當X0由OFF到ON時,程序直接跳到P0處,向下執行到程序結束。 當用連續方式執行CJ時,條件滿足時,每個掃描周期執行一次。 (1) 跳轉指令有效時跳轉段內的程序跳過,PLC不掃描, (2) 跳轉前跳轉段內已有自我保持的線圈,或以SET 的線圈,跳轉后線圈仍保持,但可通過跳轉外程序改變。積算定時器/計數器保持當前值,非積算型復位,高速計數器仍工作。 (3) 從主控區外跳到主控區內時,跳轉獨立于主控操作,不管MC狀態如何,均作ON處理。 (4) 從主控內跳轉時,MC為OFF時,不執行,為ON時可跳轉可跳到主控區外。 (5) T192---T199(100ms定時器);C235----C255(高速計數器)一經驅動,既是跳過,也仍工作,輸出觸點也動作。 CALL(P)轉子程序 SRET 子程序返回。 目標操作元件:P0——P62(允許變址修改) 使用格式:LD X0 CALL(P) P0 : : : FEND P0 : : SRET END 當X0由OFF變為ON時,程序直接跳到P0處,向下執行,到SRET時,返回跳轉處再向下執行。 注意:(1)當用連續方式執行CALL時,執行條件滿足時每個掃描周期執行一次。 (2)轉移目標由P0-P62指定(允許變址修改)但CJ中用過的標號不可再用。不同的CALL可調用同一子程序。 (3) P必須在主程序結束FEND后也就是說子程序必須寫在主程序結束FEND后。 (4)CALL調用的子程序必須以SRET結束 (5)在子程序內可再用CALL子程序,形成嵌套,最多5級。 (6)子程序中定時器范圍T192-T199和T246-T249。 IRET 中斷返回,從中斷子程序返回中斷點,即子程序結束。 EI 允許中斷 DI 禁止中斷 指令EI 與DI之間的程序段為允許中斷區間。當處理到允許中斷區間時,中斷請求為ON 態,則轉而處理相應的中斷子程序。子程序處理到IRET指令知返回斷點。 在禁止中斷區間(即EI 與DI以外)有中斷事件發生,則PLC 記住該中斷,留待EI指令后執行。 相應的特殊輔助繼電器置1時,中斷程序不能執行。例如,當M805△置1時,相應的中斷I△★★不執行 在執行中斷程序時,其它中斷禁止,但可在中斷程序內編入中斷,可實現2級嵌套。 中斷程序中用定時器為T192——T199和T246——T249。 (1) 中斷子程序必須寫在主程序結束FEND后。 (2) 中斷子程序必須以IRET返回 中斷類型見元件“指針” FEND 主程序結束,表示主程序結束。執行到FEND指令時機器進行輸出處理、輸入處理、警戒時鐘刷新,完成以后返回0步。 (1) 子程序必須寫在FEND之后,即CALL、CALL(P)指令對應的標號必須寫在FEND 指令之后。CALL、、CALL(P)指令調用的 子程序必須以SRET指令結束。 (2) 中斷子程序也必須寫在FEND之后,必須以IRET結束。 (3) FEND 也不可出現在FOR-NEXT循環之中。 WDT(P)警戒時鐘。 WDT指令刷新順序程序的警戒時鐘。如果掃描(從0步到END或FEND指令)超過200ms,PLC將停止。在這種情況下,應將WDT指令插到合適位置中刷新警戒時鐘,以使順序程序執行到END。 掃描周期的缺剩設置為200ms,如果希望改變掃描時間,可通過MOV改變D8000的值。 使用格式:LD X0 WDT(P) 當X0由OFF變ON時,WDT(P)執行一次刷新。 當為連續方式執行WDT時,執行條件滿足時每個掃描周期執行一次。 (1) 當與CJ指令對應的標號的步序低于CJ指令時(即CJ跳到的位置在其前面時)在標號P后編如WDT指令。 (2) M8039置位時,PLC 改以定時掃描方式運行,掃描時間由D8039指定。可通過MOV傳送改變D8039數值。 FOR循環區起點,后面加Kn,循環n次。 NEXT 循環區終點 操作元件:K/H KnX KnY KnM KnS T C D V/Z 使用格式:FOR K4 : : NEXT : END FOR——NEXT間的程序執行4次,再執行NEXT指令以后的程。 (1) 可嵌套5級 (2) 循環次數1——32767 [ 此帖被870605在2011-06-09 11:24重新編輯 ] |
|
---|---|---|
本帖最近評分記錄:
|