說明:對(duì)于“立即寫入”功能,必須按以下實(shí)例所示創(chuàng)建符號(hào)程序段。
對(duì)于對(duì)時(shí)間要求苛刻的應(yīng)用程序,將數(shù)字輸出的當(dāng)前狀態(tài)發(fā)送給輸出模塊的速度可能必須快于正常情況下在ob1掃描周期結(jié)束時(shí)發(fā)送一次的速度?!傲⒓磳懭搿睂⒃趻呙琛傲⒓磳懭搿碧菁?jí)時(shí)將數(shù)字輸出寫入輸入模塊。否則,必須等到下一ob1掃描周期結(jié)束,屆時(shí)將以p存儲(chǔ)器狀態(tài)更新q存儲(chǔ)區(qū)。
要將一個(gè)輸出(或多個(gè)輸出)立即寫入輸出模塊,請(qǐng)使用外設(shè)輸出(pq)存儲(chǔ)區(qū)來代替輸出(q)存儲(chǔ)區(qū)??梢宰止?jié)、字或雙字形式讀取外設(shè)輸出存儲(chǔ)區(qū)。因此,不能通過線圈單元更新單一數(shù)字輸出。要立即向輸出模塊寫入數(shù)字輸出的狀態(tài),將根據(jù)條件把包含相關(guān)位的q存儲(chǔ)器的字節(jié)、字或雙字復(fù)制到相應(yīng)的pq存儲(chǔ)器(直接輸出模塊地址)中。
當(dāng)心
·由于q存儲(chǔ)器的整個(gè)字節(jié)都寫入了輸出模塊,因此在執(zhí)行立即輸出時(shí),將更新該字節(jié)中的所有輸出位。
·如果輸出位在程序各處產(chǎn)生了多個(gè)中間狀態(tài)(1/0),而這些狀態(tài)不應(yīng)發(fā)送給輸出模塊,則執(zhí)行“立即寫入”可能會(huì)導(dǎo)致危險(xiǎn)情況(輸出端產(chǎn)生瞬態(tài)脈沖)發(fā)生。
·作為常規(guī)設(shè)計(jì)原則,在程序中只能以線圈形式對(duì)外部輸出模塊引用一次。如果用戶遵循此設(shè)計(jì)原則,則可以避免使用立即輸出時(shí)的大多數(shù)潛在問題。
實(shí)例
立即寫入外設(shè)數(shù)字輸出模塊5通道1的等價(jià)梯形圖程序段。
可以修改尋址輸出q字節(jié)(qb5)的狀態(tài)位,也可以將其保持不變。程序段1中給q5.1分配i0.1信號(hào)狀態(tài)。將qb5復(fù)制到相應(yīng)的直接外設(shè)輸出存儲(chǔ)區(qū)(pqb5)。
字piw1包含i1.1的立即狀態(tài)。對(duì)piw1與w#16#0002執(zhí)行and運(yùn)算。如果pb1中的i1.1(第二位)為真(“1”),則結(jié)果不等于零。如果wand_w指令的結(jié)果不等于零,觸點(diǎn)a<>0時(shí)將傳遞電壓。
在此實(shí)例中,q5.1為所需的立即輸出位;字節(jié)pqb5包含q5.1位的立即輸出狀態(tài);move(復(fù)制)指令還會(huì)更新pqb5的其它7位。