发表于:2004-09-13 22:12:00
楼主
我是一名新手,请教各位大侠一个问题:在西门子给我们的一个例子程序中有这么一段,其是一个子程序的一部分。
LD Always_On // Load SM0.0.
MOVB 16#8D, PLS0_Ctrl // Load control bits for pulse
// train output at Q0.0.
MOVW +1, PLS0_Cycle // Set the length of pulse = 1 ms.
MOVD +30000, PTO0_PC // Set the number of pulses to
// be generated = 30000.
PLS 0 // Enable pulse function
// at output Q0.0.
我的疑问是当执行 “PLS 0”指令后,子程序是不是等到把30000个1ms的脉冲串输出完后才结束,但是这样很明显整个程序就子程序的执行就使得扫描周期严重超时了,那CPU岂不停止工作了?如果是每次扫描执行到上面一段子程序时,重装控制字后只输出一个脉冲,那么总有一个计数的存储单元吧,这个计数单元是哪个?