说明:对于“立即写入”功能,必须按以下实例所示创建符号程序段。
对于对时间要求苛刻的应用程序,将数字输出的当前状态发送给输出模块的速度可能必须快于正常情况下在ob1扫描周期结束时发送一次的速度。“立即写入”将在扫描“立即写入”梯级时将数字输出写入输入模块。否则,必须等到下一ob1扫描周期结束,届时将以p存储器状态更新q存储区。
要将一个输出(或多个输出)立即写入输出模块,请使用外设输出(pq)存储区来代替输出(q)存储区。可以字节、字或双字形式读取外设输出存储区。因此,不能通过线圈单元更新单一数字输出。要立即向输出模块写入数字输出的状态,将根据条件把包含相关位的q存储器的字节、字或双字复制到相应的pq存储器(直接输出模块地址)中。
当心
·由于q存储器的整个字节都写入了输出模块,因此在执行立即输出时,将更新该字节中的所有输出位。
·如果输出位在程序各处产生了多个中间状态(1/0),而这些状态不应发送给输出模块,则执行“立即写入”可能会导致危险情况(输出端产生瞬态脉冲)发生。
·作为常规设计原则,在程序中只能以线圈形式对外部输出模块引用一次。如果用户遵循此设计原则,则可以避免使用立即输出时的大多数潜在问题。
实例
立即写入外设数字输出模块5通道1的等价梯形图程序段。
可以修改寻址输出q字节(qb5)的状态位,也可以将其保持不变。程序段1中给q5.1分配i0.1信号状态。将qb5复制到相应的直接外设输出存储区(pqb5)。
字piw1包含i1.1的立即状态。对piw1与w#16#0002执行and运算。如果pb1中的i1.1(第二位)为真(“1”),则结果不等于零。如果wand_w指令的结果不等于零,触点a<>0时将传递电压。
在此实例中,q5.1为所需的立即输出位;字节pqb5包含q5.1位的立即输出状态;move(复制)指令还会更新pqb5的其它7位。