CPM1A_Руководство по программированию (W228-E1-4 R1.20) (986747), страница 34
Текст из файла (страница 34)
Ñõåìà èìååòñëåäóþùèé âèä:Áëîê a00000 0000100002 00003 00004 000051000001000 010010000610000Áëîê cÁëîê bÏåðâàÿ áëîêîâàÿ êîìàíäà èñïîëüçóåòñÿ äëÿ îáúåäèíåíèÿ óñëîâèé èñïîëíåíèÿ,ïîëó÷åííûõ îò áëîêîâ à è b, à âòîðàÿ - äëÿ îáúåäèíåíèÿ óñëîâèÿ èñïîëíåíèÿ áëîêà “ñ” ñóñëîâèåì èñïîëíåíèÿ, ïîëó÷àþùåãîñÿ îò íîðìàëüíî çàêðûòîãî óñëîâèÿ IR 00003.Îñòàâøóþñÿ ÷àñòü ñõåìû ìîæíî çàêîäèðîâàòü êîìàíäàìè OR, AND è AND NOT. Äàëååïîêàçàí àëãîðèòì è ðåçóëüòèðóþùèé êîä.- 182 -4.7 Èñïîëíåíèå ïðîãðàììûÁëîê a00000LDANDÁëîê b0000101000000000000101001LDAND0100001001OR LDÁëîê c10000OR000020000410000LDAND0000300005000040000500006AND00002AND NOT 00003OR00006AND LD10000ÀäðåñÈíñòðóêöèÿ00000LDÎïåðàíä0000000001AND0000100002LD0100000003AND0100100004OR LD00005OR1000000006AND0000200007AND NOT0000300008LD0000400009AND0000500010OR0000600011AND LD00012OUT-100004.3.7 Êîäèðîâàíèå4.3.7íåñêîëüêèõ âûõîäíûõ êîìàíäÅñëè íåñêîëüêî âûõîäíûõ êîìàíä âûïîëíÿþòñÿ ñ îäíèì óñëîâèåì èñïîëíåíèÿ, èõ íóæíîêîäèðîâàòü ïîñëåäîâàòåëüíî, âñëåä çà ïîñëåäíèì óñëîâèåì êîìàíäíîé ëèíèè.
Âñëåäóþùåì ïðèìåðå ïîñëåäíÿÿ ñòðîêà êîìàíä ñîäåðæèò åùå îäíî óñëîâèå(ËÎÃÈ×ÅÑÊÎÅ È ñ IR 00004)0000000003HR 00010000110000000020000410006HR 0000.- 183 -4.7 Èñïîëíåíèå ïðîãðàììûÀäðåñÈíñòðóêöèÿÎïåðàíä00000LD0000000001OR0000100002OR0000200003OR00004AND00005OUT00006OUT1000000007AND0000400008OUT10006HR000000003HR00014.3.8 Êîìàíäíûå4.3.8ëèíèè âåòâëåíèÿÊîãäà êîìàíäíàÿ ëèíèÿ ðàçâåòâëÿåòñÿ íà 2 è áîëåå ëèíèé, èíîãäà íåîáõîäèìîïðèìåíèòü ëèáî ñåêöèþ INTERLOÑK, ëèáî áèòû TR äëÿ ñîõðàíåíèÿ óñëîâèÿ èñïîëíåíèÿ,êîòîðîå ñóùåñòâîâàëî â òî÷êå âåòâëåíèÿ.
Ýòî òðåáóåòñÿ îò òîãî, ÷òî ïåðåä âîçâðàòîì âòî÷êó âåòâëåíèÿ äëÿ âûïîëíåíèÿ êîìàíäíîé ëèíèè âåòâëåíèÿ âûïîëíÿþòñÿ êîìàíäíûåëèíèè ê “ïðàâîñòîðîííèì” êîìàíäàì. Åñëè ñóùåñòâóþò óñëîâèÿ ïîñëå òî÷êè âåòâëåíèÿ, âýòî âðåìÿ ðåçóëüòàòû ìîãóò èçìåíèòüñÿ, ÷òî ñäåëàåò ïðàâèëüíûé ðåçóëüòàòíåâîçìîæíûì. Ñëåäóþùàÿ ñõåìà èëëþñòðèðóåò ýòî.  îáåèõ ñõåìàõ êîìàíäà 1âûïîëíÿåòñÿ ïåðåä âîçâðàùåíèåì â òî÷êó âåòâëåíèÿ è äàëåå âåòâëåíèå íà êîìàíäó 2.00000Òî÷êà âåòâëåíèÿÈíñòðóêöèÿ 100002Èíñòðóêöèÿ 2Äèàãðàììà A: êîðåêòíàÿ îïåðàöèÿÀäðåñÈíñòðóêöèÿ00000LD00001Èíñòðóêöèÿ100002AND00003Èíñòðóêöèÿ200000Òî÷êà âåòâëåíèÿÎïåðàíä000000000200001Èíñòðóêöèÿ 100002Èíñòðóêöèÿ 2Äèàãðàììà B: íåêîðåêòíàÿ îïåðàöèÿÀäðåñÈíñòðóêöèÿ00000LDÎïåðàíä0000000001AND0000100002Èíñòðóêöèÿ100003AND00004Èíñòðóêöèÿ200002- 184 -4.7 Èñïîëíåíèå ïðîãðàììûÅñëè, êàê ïîêàçàíî íà ñõåìå À, ðåçóëüòàò, ñóùåñòâîâàâøèé â òî÷êå âåòâëåíèÿ, íå ìîæåòèçìåíèòüñÿ ïåðåä âîçâðàòîì â òî÷êó âåòâëåíèÿ (êîìàíäû ñïðàâà íå âëèÿþò íàðåçóëüòàò), êîìàíäíàÿ ëèíèÿ ñ âåòâëåíèåì áóäåò èñïîëíåíà ïðàâèëüíî è ñïåöèàëüíûõìåð ïðîãðàììèðîâàíèÿ íå òðåáóåòñÿ.Åñëè, êàê ïîêàçàíî íà ñõåìå Â, ìåæäó òî÷êîé âåòâëåíèÿ è “ïðàâîñòîðîííåé” êîìàíäîéâåðõíåé êîìàíäíîé ëèíèè ñóùåñòâóåò óñëîâèå, ðåçóëüòàò ïîñëå âûïîëíåíèÿ âåðõíåéêîìàíäíîé ëèíèè ìîæåò èçìåíèòüñÿ, òåì ñàìûì ñäåëàâ ïðàâèëüíîå âûïîëíåíèå íèæíåéêîìàíäíîé ëèíèè íåâîçìîæíûì.Äëÿ ñîõðàíåíèÿ ðåçóëüòàòîâ ïðè âåòâëåíèÿõ ïðîãðàìì ñóùåñòâóåò 2 ìåòîäà:• èñïîëüçîâàíèå áèòîâ TR• èñïîëüçîâàíèå ñåêöèè INTERLOCK (IL(02)/ ILC(03)).Áèòû TRÎáëàñòü TR èìååò 8 áèò, TR 0..TR 7, êîòîðûå ìîæíî èñïîëüçîâàòü äëÿ âðåìåííîãîõðàíåíèÿ ðåçóëüòàòîâ.
Åñëè TR ïîñòàâëåí â òî÷êå âåòâëåíèÿ, òåêóùåå óñëîâèåèñïîëíåíèÿ áóäåò ñîõðàíåíî â óêàçàííîì áèòå TR. Ïðè âîçâðàùåíèè â òî÷êó âåòâëåíèÿáèò TR âîçâðàùàåò óñëîâèå èñïîëíåíèÿ, êîòîðîå áûëî ñîõðàíåíî ïðè ïåðâîì ïðèõîäå âòî÷êó âåòâëåíèÿ.Ïðåäûäóùóþ ñõåìó  ìîæíî çàïèñàòü â ñëåäóþùåì âèäå äëÿ ïðàâèëüíîãî èñïîëíåíèÿ. ìíåìîêîäå óñëîâèå èñïîëíåíèÿ â òî÷êå âåòâëåíèÿ çàïîìèíàåòñÿ â áèòå TR, êàê âîïåðàíäå êîìàíäû OUTPUT. Ïîñëå âûïîëíåíèÿ êîìàíäû 1 óñëîâèå èñïîëíåíèÿâîçâðàùàåòñÿ èç TR êàê îïåðàíä êîìàíäû LOAD.00000TR 000001Èíñòðóêöèÿ 100002Èíñòðóêöèÿ 2Äèàãðàììà B: êîððåêòíîå èñïîëüçîâàíèå áèòà TRÀäðåñÈíñòðóêöèÿ00000LD00001OUT00002AND00003Èíñòðóêöèÿ100004LD00005AND00006Èíñòðóêöèÿ2Îïåðàíä00000TR000001TR000002Ñ òî÷êè çðåíèÿ òåêóùèõ êîìàíä âûøåïðèâåäåííàÿ ñõåìà ðàáîòàåò ñëåäóþùèì îáðàçîì:çàãðóæàåòñÿ ñîñòîÿíèå IR 00000 (êîìàíäà LOAD) äëÿ ñîçäàíèÿ èñõîäíîãî óñëîâèÿèñïîëíåíèÿ.
Óñëîâèå èñïîëíåíèÿ â òî÷êå âåòâëåíèÿ çàïèñûâàåòñÿ â TR 0 êîìàíäîéOUTPUT. Äàëåå ïðîèçâîäèòñÿ îïåðàöèÿ È äàííîãî óñëîâèÿ èñïîëíåíèÿ ñ IR 00001 è âñîîòâåòñòâèè ñ ðåçóëüòàòîì âûïîëíèòñÿ êîìàíäà 1. Ñîõðàíåííîå óñëîâèå èñïîëíåíèÿñíîâà çàãðóæàåòñÿ (êîìàíäîé LOAD ñ TR 0 â êà÷åñòâå îïåðàíäà), ïðîèçâîäèòñÿ È ñ IR00002 è â çàâèñèìîñòè îò ðåçóëüòàòà âûïîëíÿåòñÿ êîìàíäà 2.Ñëåäóþùèé ïðèìåð ïîêàçûâàåò ïðèìåíåíèå äâóõ áèòîâ TR.- 185 -4.7 Èñïîëíåíèå ïðîãðàììû00000 TR 000001TR 100002Èíñòðóêöèÿ 100003Èíñòðóêöèÿ 200004Èíñòðóêöèÿ 300005Èíñòðóêöèÿ 4ÀäðåñÈíñòðóêöèÿ00000LDÎïåðàíä00001OUT00002AND00003OUT00004AND00005Èíñòðóêöèÿ100006LD00007AND00008Èíñòðóêöèÿ200009LD00010AND00011Èíñòðóêöèÿ300012LDTR00013AND NOT0000500014Èíñòðóêöèÿ400000TR0TR10000100002TR100003TR0000040 äàííîì ïðèìåðå TR 0 è TR 1 ñëóæàò äëÿ ñîõðàíåíèÿ óñëîâèé èñïîëíåíèÿ â òî÷êàõâåòâëåíèÿ.
Ïîñëå âûïîëíåíèÿ êîìàíäû 1 óñëîâèå èñïîëíåíèÿ, ñîõðàíåííîå â TR 1,çàãðóæàåòñÿ ïåðåä AND ñ IR 00003. Óñëîâèå èñïîëíåíèÿ, ñîõðàíåííîå â TR 0,çàãðóæàåòñÿ 2 ðàçà: ïåðâûé ðàç äëÿ AND ñ IR 00004 è âòîðîé ðàç äëÿ AND ñ èíâåðñèè IR00005.Áèòû TR ìîæíî èñïîëüçîâàòü ñòîëüêî ðàç, ñêîëüêî íåîáõîäèìî , ïîêà îäèí è òîò æå áèòTR íå èñïîëüçóåòñÿ â îäíîì áëîêå êîìàíä. Çäåñü, íîâûé áëîê êîìàíä íà÷èíàåòñÿêàæäûé ðàç, êîãäà ïðîèñõîäèò âîçâðàò íà øèíó. Åñëè â îäíîì áëîêå êîìàíä íåîáõîäèìîèìåòü áîëåå 8 òî÷åê âåòâëåíèÿ, êîòîðûå òðåáóþò ñîõðàíåíèÿ ðåçóëüòàòà, íóæíîïðèìåíÿòü êîìàíäû INTERLOÑK (îïèñàíû äàëåå).Çàìå÷àíèå Õîòÿ óïðîùåíèå ïðîãðàììû äîñòàâëÿåò õëîïîòû, èíîãäà âàæåí ïîðÿäîêâûïîëíåíèÿ. Íàïðèìåð, êîìàíäà MOVE ìîæåò ïîòðåáîâàòüñÿ ïåðåäêîìàíäîé äâîè÷íîå ñëîæåíèå (BINARY ADD) äëÿ ñîõðàíåíèÿ òðåáóåìûõäàííûõ â òðåáóåìûé îïåðàíä. Îáÿçàòåëüíî ðàññìîòðèòå ïîðÿäîêèñïîëíåíèÿ ïåðåä óïðîùåíèåì ïðîãðàììû.- 186 -4.7 Èñïîëíåíèå ïðîãðàììû00000TR 000001Èíñòðóêöèÿ 1Èíñòðóêöèÿ 200000Èíñòðóêöèÿ 200001Èíñòðóêöèÿ 10000000003Èíñòðóêöèÿ 100001TR 00000200004Èíñòðóêöèÿ 2000010000200003Èíñòðóêöèÿ 1000000000100004Èíñòðóêöèÿ 2Çàìå÷àíèåÁèòû TR äîëæíû ââîäèòüñÿ òîëüêî ïðè ïðîãðàììèðîâàíèè â ìíåìîêîäå.
Ïðèââîäå ÐÊÑ èõ ââîäèòü íå íóæíî, ïîñêîëüêó ýòî äåëàåòñÿ àâòîìàòè÷åñêè.Îäíàêî âûøåóêàçàííûå îãðàíè÷åíèÿ íà ÷èñëî âåòâëåíèé, òðåáóþùèõ TR, èíà ìåòîäû ñîêðàùåíèÿ êîìàíä ñîõðàíÿþòñÿ.“Ñãðóïïèðîâàòü” - INTERLOÑKÏðîáëåìû ñîõðàíåíèÿ óñëîâèé èñïîëíåíèÿ â òî÷êàõ âåòâëåíèÿ ìîæíî ðåøèòü òàêæåêîìàíäàìè INTERLOCK (ñãðóïïèðîâàòü) IL(02) è INTERLOCK CLEAR (ðàçãðóïïèðîâàòü)IL(03) äëÿ ïîëíîãî óñòðàíåíèÿ òî÷åê âåòâëåíèÿ, íî ïîçâîëèâ óêàçàííûì óñëîâèÿìèñïîëíåíèÿ óïðàâëÿòü ãðóïïàìè êîìàíä.
Êîìàíäû INTERLOCK è INTERLOCK CLEARâñåãäà èñïîëüçóþòñÿ ñîâìåñòíî.Êîãäà êîìàíäà INTERLOCK ïîìåùåíà ïåðåä ñåêöèåé ðåëåéíî-êîíòàêòíîé ñõåìû,óñëîâèå èñïîëíåíèÿ äëÿ êîìàíäû INTERLOÑK óïðàâëÿåò èñïîëíåíèåì âñåõ êîìàíä äîêîìàíäû INTERLOCK CLEAR. Åñëè óñëîâèå èñïîëíåíèÿ äëÿ êîìàíäû INTERLOCK = 0,âñå âûõîäíûå (“ïðàâîñòîðîííèå”) êîìàíäû äî INTERLOCK CLEAR áóäóò âûïîëíÿòüñÿ ñóñëîâèåì 0 (ò.å. ñáðîñ âñåé ñåêöèè ÐÊÑ). Âëèÿíèå, êîòîðîå îíè îêàçûâàþò íà êîíêðåòíûåêîìàíäû, ñìîòðèòå ãë. 5 -11 INTERLOCK è INTERLOCK CLEAR.Ñõåìó  ìîæíî îòêîððåêòèðîâàòü òàêæå ñ ïîìîùüþ INTERLOCÊ. Çäåñü óñëîâèÿèñïîëíåíèÿ äî òî÷êè âåòâëåíèÿ ñòàâÿòñÿ â êîìàíäíóþ ñòðîêó äëÿ êîìàíäû INTERLOCK ,âñå ñòðîêè îò òî÷êè âåòâëåíèÿ çàïèñûâàþòñÿ êàê îòäåëüíûå êîìàíäíûå ñòðîêè èäîáàâëÿåòñÿ åùå îäíà êîìàíäà INTERLOCK CLEAR.
Îáðàòèòå âíèìàíèå, ÷òî íèINTERLOCK, íè INTERLOCK CLEAR íå òðåáóþò îïåðàíäà.- 187 -4.7 Èñïîëíåíèå ïðîãðàììû00000IL(02)00001Èíñòðóêöèÿ 100002Èíñòðóêöèÿ 2ILC(03)ÀäðåñÈíñòðóêöèÿ00000LD00001IL(02)00002LD00003Èíñòðóêöèÿ100004LD00005Èíñòðóêöèÿ200006ILC(03)Îïåðàíä000000000100002-Åñëè â íîâîé âåðñèè ñõåìû  IR 00000 = 1, ñîñòîÿíèå IR 00001 è IR 00002 áóäóòîïðåäåëÿòü óñëîâèå èñïîëíåíèÿ êîìàíä 1 è 2. Ïîñêîëüêó IR 00000 = 1, ðåçóëüòàò áóäåòòàêèì æå, êàê è È ñ ñîñòîÿíèåì êàæäîãî èç ýòèõ áèòîâ.
Åñëè IR 00000 = 0, êîìàíäàINTERLOCK ïåðåäàñò çíà÷åíèå 0 êîìàíäàì 1 è 2 è äàëåå èñïîëíåíèå ïðîãðàììûïðîäîëæèòñÿ äî ñòðîêè ñ êîìàíäîé INTERLOCK CLEAR.Êàê ïîêàçàíî íà ñëåäóþùåé ñõåìå, âíóòðè áëîêà ìîæíî ïðèìåíèòü áîëåå îäíîé êîìàíäûINTERLOCK. Êàæäàÿ äåéñòâóåò äî ïåðâîé INTERLOCK CLEAR.00000IL(02)00001Èíñòðóêöèÿ 100002IL(02)0000300004Èíñòðóêöèÿ 200005Èíñòðóêöèÿ 300006Èíñòðóêöèÿ 4ILC(03)ÀäðåñÈíñòðóêöèÿ00000LD00001IL(02)00002LD00003Èíñòðóêöèÿ100004LDÎïåðàíä000000000100002- 188 -4.7 Èñïîëíåíèå ïðîãðàììûÀäðåñÈíñòðóêöèÿÎïåðàíä00005IL(02)-00006LD0000300007AND NOT0000400008Èíñòðóêöèÿ200009LD00010Èíñòðóêöèÿ300011LD00012Èíñòðóêöèÿ400013ILC(03)0000500006-Åñëè â äàííîé ñõåìå IR 00000 = 0 (ò.å. óñëîâèå èñïîëíåíèå äëÿ ïåðâîé êîìàíäûINTERLOCK = 0), êîìàíäû 1 -4 áóäóò âûïîëíåíû ñ óñëîâèåì èñïîëíåíèÿ 0 è äàëååïðîèçîéäåò ïåðåõîä ê êîìàíäå, ñëåäóþùåé çà INTERLOCK CLEAR .
Åñëè â äàííîé ñõåìåIR 00000 = 1, ñîñòîÿíèå IR 00001 áóäåò çàãðóæåíî êàê óñëîâèå èñïîëíåíèÿ êîìàíäû 1,çàòåì ñîñòîÿíèå IR 00001 áóäåò çàãðóæåíî êàê óñëîâèå èñïîëíåíèÿ âòîðîé êîìàíäûINTERLOCK. Åñëè IR 00002 = 0, êîìàíäû 2 - 4 áóäóò èñïîëíåíû ñ óñëîâèåì 0. Åñëè IR00002 = 1, IR 00003, IR 00005, IR 00006 îïðåäåëÿò ïåðâîå óñëîâèå èñïîëíåíèÿ íàêîìàíäíûõ ñòðîêàõ.4.3.94.3.9 ÏåðåõîäûÇàäàííóþ ñåêöèþ ïðîãðàììó ìîæíî ïðîïóñòèòü â çàâèñèìîñòè îò çàäàííûõ óñëîâèéèñïîëíåíèÿ.