图3.2 线性处理后的数据
3.5 PLC与计算机的自由协议通信
本节说明如何以自由协议实现计算机与S7-200的通信,计算机作为主站,可以实现对PLC从站各寄存器的读/写操作。
计算机通过COM口发送指令到PLC的PORT0(或PORT1)口,PLC通过RCV接收指令,然后对指令进行译码,译码后调用相应的读/写子程序实现指令要求的操作,并返回指令执行的状态信息。
在自由口模式下,通信协议是由用户定义的。用户可以用梯形图程序调用接收中断、发送中断、发送指令(XMT)、接受指令(RCV)来控制通信操作。在自由口模式下,通信协议完全由梯形图程序控制。
PLC在第一次扫描时执行初始化子程序,对端口及RCV指令进行初始化。初始化完成后,运行RCV指令使端口处于接受状态。RCV会将以\开头\结尾的指令保存到接收缓冲区,并同时产生接收完成中断。
----RCVcomplete中断服务程序用来处理接收完成中断事件,它会将接收缓冲区中的十六进制ASCII码还原成数据并保存,同时置位Verify子程序的触发条件(M0.1)。 ----Verify子程序首先复位本身的触发条件以防止子程序被重复调用,然后求出接收缓冲区中指令的BCC校验码并与指令中的BCC校验码进行比对。如果相等则置BCC码校验正确的标志位(M0.0)为1;如果指令格式正确(指令的结束标志在接收缓冲区中特定的位置VB133)而BCC码不相等,则发送代表BCC校验码错误的反馈信息;如果指令格式不正确(VB133中不是指令的结束标志),则返回代表指令格式错误的反馈信息。 ----Read子程序的触发条件为:指令中的站地址与本机站地址相符、指令类型为读指令、BCC检验码正确。当条件满足时,Read子程序被执行。Read子程序首先禁止RCV,然后将指令所要读取的数据转换成十六进制ASCII码并写入发送缓冲区、计算BCC检验码、最后发送反馈信息。
----Write子程序的触发条件为:指令中的站地址与本机站地址相符、指令类型为写指令、BCC检验码正确。当条件满足时,Write子程序被执行。Write子
17
程序首先禁止RCV,然后将指令中的数据写入目标寄存器,最后发送代表写入正确的反馈信息。
----PLC每接到一条指令后都会发送一条反馈信息,当反馈信息发送完成时,会产生发送完成中断,XMTcomplete中断服务程序用来处理发送完成中断事件。在XMTcomplete中断服务程序中所要执行的操作包括:复位BCC校验码正确的标志位(M0.0);允许RCV;bcc码寄存器清零;重新装入用于计算BCC校验码的地址指针;接收缓冲区中存放指令结束字符的字节VB133清零(用来判断下一条指令格式是否正确)。
3.6 本章小结
本章主要介绍了软件的编程方案,S7-200PLC的CPU模块和扩展模块,控制系统I/O设计,数据的线性化处理并介绍了PLC与计算机的自由协议通讯。
18
4 重点程序介绍 4 重点程序介绍
4.1 油压跟踪水压程序介绍
油压跟踪水压的程序是本次设计中的一个重要部分,也是水压试验机运行中的核心部分,以下对该部分程序进行介绍。
在本控制系统中存在着三个比例溢流阀,如下表:
表4.1 比例溢流阀详略表 主缸压力控制比例溢流阀1 1个 主缸压力控制比例溢流阀2 比例溢流阀2切换阀 放大器型号:VT-2000BS40,放大器供电电源:24V/30W 1个 放大器型号:VT-2000BS40,放大器供电电源:24V/30W 1个 单电磁阀控制 24V/35W DT4 高压控制阀。加压时,根据高压水压力控制主缸油压 低压控制阀。加压时,根据高压水压力控制主缸油压 当油压高于1.5MPa时自动切断比流溢流阀2 DT5 DT3 通(比例溢流阀2工作)-断(比例溢流阀切断) 这三个比例溢流阀就担当着油压跟踪水压的任务,具体体现在程序中,则是当2号低压水泵启动工作(如图)时:
Network 9
// q0.5 2#低压水泵主运行 q0.6 2#低压水泵星启动 q0.7 2#低压水泵三角运行
// t38 2#低压水泵星启动延时10秒
Network 10
移动端、固定端柱塞泵和辅助泵均启动将油管顶死,同时,主缸压力控制比例溢流阀2工作,它是低压控制阀,加压时,根据高压水压力控制主缸油压。 之后增压器柱塞泵启动等动作引起主油路增压。
19
Network 49 // 主油路增压 与 主油缸极限 , 插销插入标志连锁
// i5.2 主油路增压 q4.4 主油路增压 i8.1主油缸极限 i10.7 插销插入标志(1=插入)
此时比例溢流阀2切换阀工作,当油压高于1.5MPa时自动切断比流溢流阀
2,它是高压控制阀,加压时,根据高压水压力控制主缸油压。 这三个比例溢流阀实现了油压跟踪水压的任务。
4.2 星三角启动程序
程序中多次用到星三角启动,在这里以1号低压水泵为例,对星三角启动
进行介绍:
Network 6
// q0.2 1#低压水泵主运行 q0.3 1#低压水泵星启动 q0.4 1#低压水泵三角运行
// t37 1#低压水泵星启动延时10秒
Network 7
当主运行线圈Q0.2闭合以后,网络6连通,T37开始计时,星启动线圈Q0.3接通,,1号泵开始星运行,十秒以后网络7中的T37闭合,而网络6中的常闭T37则断开,Q0.3断开,网络7中的常闭Q0.3不动作,所以网络7中的Q0.4接通,而网络6中的常闭Q0.4动作,节点打开,Q0.3断开,从而完成了1号泵由星运行转变为三角运行,完成了星三角启动全过程。在这两个网络中运用到了编程中常见的Q0.3与Q0.4之间的互锁控制。
4.3 水压和油压初始化程序
在整个程序中,水压油压初始化程序在网络59,下面对该初始化程序进行介绍。
Network 59
// 水压和油压采集初始化
20