我先分享一下我的计划.这是我希望的程序结构。程序的参数确定是按照PID指令的模式。先要在工作表中按照规定内容填写正确的参数。工作表其余部分用于程序运行。程序占用一定的V区。在库的参数入口只定义了工作表的首地址的偏移。例子里填写0,意思就是vb0。以vb0为首建立工作表。所有参数可以定的都用常数辅值,不能定的都用地址值直接寻址,用程序库自身功能计算。
大家可以导入看看。不过里面程序是空白的,等你们填空。
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
实用上我不知道有多少个。因为这个机器没有开始设计。但是8个的话一定够了。电眼三个够了。
但是我希望日后的扩展性强,可以适应非常多的要求。之下,希望个数不受限制,只受数据空间限制。这样的限制就是极限了。
说说别的。HZGM其实我还想做其他库自己放着,以便需要时用。例如:独立的时间继电器,我希望做个库,当时间继电器从电路上拔下来的时候,PLC还可以凭记忆运行继电器的时间。当往插座上一差的时候,PLC立即供电过来让时继计时,然后读取设定值,并永久记忆。
还有。有的汽车的车窗升降开关。当短暂 点按 的时候,一直运动到极限,运动过程中按任意上或者下都可以立即停。稍长时间按的话是点动。这样可以用两个开关控制正反停。
还有:泵(等等设备)的轮换。PLC控制可控硅导通角。电动执行器的控制。曲轴滑块机构的极限位置停留控制。多种变频器的参数复制和粘贴。……太多了太多了。