发布于 2013-07-15 12:44:52
3楼
必须把经过电眼的每一个信号的发生时间(当前脉冲)记录下来。到达出口的时候,记录丢弃。
我计划程序的结构是这样的。
ORGANIZATION_BLOCK 主程序:OB1
TITLE=程序注释
BEGIN
Network 1 // 网络标题
// 网络注释
LD SM0.0
= L60.0
LD I0.0
= L63.7
LD L60.0
CALL SBR1, L63.7, 0, Q0.0, L0.0
END_ORGANIZATION_BLOCK
SUBROUTINE_BLOCK 仿真:SBR1
TITLE=
VAR_INPUT
电眼:BOOL;
工作表:INT;
END_VAR
VAR_IN_OUT
仿真点:BOOL;
临时:BOOL;
END_VAR
VAR
仿真距离:DWORD; // 电眼到仿真点的毫米距离
分辨率:DWORD; // 测量带轮转一圈的脉冲数
数据数:DWORD; // 记录数据的空间的长度,一次检测边沿要4个字节。
直径:DWORD;
时钟:DWORD;
距离镜象:DWORD;
设定脉冲:DWORD;
首项指针:DWORD;
入偏移:DWORD;
出偏移:DWORD;
目标值:DINT;
出入指针:DWORD;
END_VAR
BEGIN
Network 1
END_SUBROUTINE_BLOCK