22.5.3.2 主函数

完成的脚本

//从打印机中接收1字节的打印许可数据。
if([r:EXT_SIO_RECV]==1) //当接收数据的数量为1时。
{
_strset(databuf0, "") //初始化数据缓冲器0。
IO_READ_EX([p:EXT_SIO], databuf0, 1) //读取数据缓冲器0。
_dlcopy([w:[#MEMLINK]0100], databuf0, 0, 1)
//将数据从数据缓冲器0存储到内部寄存器。
}
endif
//确定是否从打印许可数据开始。
if([b:[#MEMLINK]005000]==1 and [b:[#MEMLINK]000100]==0x31) //当打印机开始开关为ON时。
{ // 1字节的打印许可数据为1 (ASCII)。
Call INIT //调用初始化通讯。
Call PINIT //调用初始化打印机。
Call Print // 发送打印数据,开始打印。
clear([b:[#MEMLINK]005000]) //打印机开始开关为OFF。
}
endif
if([b:[#MEMLINK]005000]==1 and [b:#MEMLINK]000100]==0x30) //当打印机开始开关为ON时。
{ // 1字节的打印许可数据为1 (ASCII)。
clear([b:[#MEMLINK]005000]) //打印机开始开关为OFF。
}
endif

函数摘要

当打印机启动按钮(内部寄存器00D5000)置ON时,脚本决定是否从打印允许数据的第一个字节开始打印。

作为打印机指定的一个示例,打印许可数据执行下述操作。

人机界面在数据缓冲器0中接收打印许可数据,在随后的脚本处理中该数据被移动到可访问的内部寄存器100中。

当内部寄存器100 = 0x31(值“1”的ASCII代码)时,打印开始。当内部寄存器是0x30(“0”的ASCII代码)时,人机界面返回到脚本开始的地方并重复该过程,直到收到0x31数据。