step7编程知识
![step7编程知识](https://img.360docs.net/img0a/0blg7jiaoa07z0l2q7n-a1.webp)
![step7编程知识](https://img.360docs.net/img0a/0blg7jiaoa07z0l2q7n-b2.webp)
第一章符号表
在STEP7中,用户可以直接使用的变量包括PLC的输入/输出地址、M存储区地址、数据DB块名、功能块名和系统已经在组织块和逻辑块中定义的变量等。如果能在STEP7中将变量用具有实际意义的符号名字代替,那么用户程序的可读性就会更好。
1.全局符号和局部符号
STEP7中可以定义两类符合:全局符号和局部符号,与其它编程语言的定义一样,全局符号是在整个用户程序范围内有效;局部符号是仅仅在定义的块内部有效。
2.符号的定义
符号名的长度不能多于24个字符,而且定义时不区分大小写字符。数据块中的地址(DBD,DBW,DBB,DBX)不能在符号表中定义,而应在数据声明表中定义。组织块(OB)、某些系统功能块(SFB)以及系统功能(SFC)已被系统根据块的功能预先赋予了符号名。在符号表中可以定义全局符号,需要注意的是,并不需要下载符号表。编辑符号后并保持符号表,这时符号表就生效了。
3.符号表的导入导出功能
在符号表编辑器中,可以通过导入导出功能。用户可以导出当前的符号表到一个文本文件,这样就可以用文本编辑器对符号进行编辑,还可以将文本编辑器中的符号表导入到用户程序中。导出符号表时,用户可以选择文件格式为“*.DIF”,则可以在Excel中打开、编辑并存储DIF文件;也可以选择文件格式为“*.SDF”在Access中打开、编辑并存储SDF文件。
第二章组织块OB
组织块(Organization Block),STEP7提供了大量的组织块用于执行用户程序,OB是CPU操作系统与用户程序间的接口。OB被嵌在用户程序中,根据某个事件的发生,执行相应的中断,自动调用相应的OB。
1.OB1工作原理:
CPU启动完毕后,操作系统就调用OB1,并且循环执行OB1的程序,读取当前输入模块的信号状态,刷新输入映像区并接收全局数据。每一次OB1程序执行完后,操作系统发送全局数据,传送输出映像区数据到输出模块。循环处理的主程序OB1的优先级最低,除OB90(背景组织块)外,其他所有的OB块均可以中断OB1的执行。
2.OB10~OB17:
时间日期中断组织块,这8个OB的默认优先级相同,都没有指定默认时间。但是,只有S7-400系统的高级CPU才可以使用全部8个OB,S7-300系列只能使用OB10。
3.OB20~0B23:
延时中断组织块,S7-300系列只能使用OB20。
4.OB30~OB38:
循环中断组织块,它们经过一段固定的时间间隔中断用户的程序。循环中断组织块每一次运行的时间一定要短于中断的间隔。如果一个循环中断组织块没有执行完,循环中断时间到,又要求循环中断组织块运行,则时间故障组织块OB80启动。反复的循环中断导致了故障程序的运行。
5.OB40~OB47
硬件中断组织块,用于快速响应信号模块SM、通信处理模块CP和功能模块FM的信号变化。
6.OB80:
时间错误处理组织块,OB执行出现故障,操作系统调用OB80。这样的故障包括:循环时间超出、执行OB时应答故障、向前移动时间以至于跃过了OB的启动时间。例如,当循环中断组织块仍在执行前一次调用时,该组织块的启动事件发生,操作系统调用OB80。如果OB80未编程,则CPU变为STOP方式。
7.OB81:
电源故障处理组织块,电源故障包括后备电池失效或未安装电池,电源故障出现和消失时操作系统都要调用该块。
8.OB82:
诊断中断组织块用于检查和评估诊断中断。如果模块具有诊断能力而且激活了诊断中断,当它检测到故障时,输出一个诊断中断请求给CPU,操作系统将调用OB82。故障包括:有诊断功能的模块的断线故障,模拟输入模块的电源故障,输入信号超过模拟量模块的测量范围。9.OB86:
机架故障组织块,当扩展机架、DP主站系统或分布式I/O中从站故障时(到来和离去事件),CPU操作系统将调用OB86。
10.OB87:
通信错误组织块,在使用通信功能块或全局数据(GD)通信进行数据交换时,若出现以下几种错误,系统将调用OB87。一是接收全局数据时,检测到不正确的帧标识符。二是全局数据通信的状态信息数据块不存在或太短。三是接收到非法的全局数据包编号。
11.OB100~OB102:
启动组织块,OB100(暖启动)OB101(热启动)和OB102(冷启动)。对于大多数的S7-300CPU来说,启动类型为暖启动,启动时过程映像和不保持的定时器、计数器以及标志存储器被清除,然后程序从OB1的第一条指令开始执行。S7-400还支持热启动组织块0B101.在热启动时,所有数据(过程映像、定时器、计数器以及标志存储器)被保持,程序从断点处恢复执行。
12.OB121:
编程故障组织块,当有关程序处理的故障事件发生时,CPU的操作系统调用OB121,OB121与被中断的块在同一优先级中执行。
13.OB122:
I/O访问故障组织块,当对模块的数据访问出现故障时CPU的操作系统调用I/O访问故障组织块OB122。例如,直接访问I/O错误(模块损坏或找不到),或访问一个CPU不能识别的I/O 地址。
第三章功能块FB
功能块是用户编写的有固定存储区的块。FB为带“记忆”的逻辑块。它有一个数据结构与功能块参数表完全相同的数据块(DB),该数据块称之为背景数据块(Instance Data Block),当功能块被执行时,数据块被调用。功能块结束,调用随之结束。存放在背景数据块中的数据在FB块结束后,仍能继续使用,具有“记忆”功能。
本工程涉及到的功能块主要包括以下几个:
1.连续PID调节功能块——FB41
焦炉的加热过程是个单各燃烧室间歇、全炉连续的过程。加热用介质――煤气的流量调节控制直接影响着焦炉的温度加热。在绝大部分焦炉的控制系统中,主要包括:煤气流量调节、煤气管道压力调节(实质也时通过调节压力来达到控制煤气流量)、焦炉机/焦侧分烟道吸力调节、焦炉上升管压力调节等一些调节系统。
PID工作原理
PID模块的功能是将PID调节的输入物理量(设定值和测量值的偏差值)转换为0~100之间的数,然后再进行PID调节,调节完后再将0~100之间的数转换为输出对象的实际量程范围。将输入物理量进行这种标准化变化的目的是为了使所有的PID调节都在同一基准下,调节的速度一致,以使整个系统的物理量工作比较协调。
FB41管脚说明:
2.1PID调节公式:
PID_OUTV(t)=Kc×ER(t)×[1+t/Ti+(Td/Tm_lag) ×e-t/Tm_lag]
2.2 调节选择开关:
P_SEL:P_SEL=1时,GAIN增益起作用。
I_SEL:I_SEL=1时,TI积分起作用。
D_SEL:D_SEL=1时,TD微分起作用。
2.3 手自动切换开关:
MAN_ON:MAN_ON=1时,表示调节回路处于“手动”;
MAN_ON=0时,表示调节回路处于“自动”。
MAN为手动输出值:MAN_ON=1时,MAN中的数值送给相应的模拟量输出通道。
MAN_ON=0时,PID算法计算值送给相应的模拟量输出通道。
2.4 量程说明:
LMNLIMT为经过限位后的PID算法输出值。
LMN_HLM为输出上限。
LMN_LLM为输出下限。
LMN计算:
?LMN=LMNLIMT×LMN_FAC+LMN_OFF
?LMN_FAC=1
?LMN_OFF=0
CRP_OUT计算:
CRP_OUT=LMN×27648÷100%
2.5 其它说明:
COM_RST:再启动位,需在OB100~OB102中的一个OB块中将一变量位置“1”后,将该位传给“COM_RST”。
表1
第四章功能FC
功能是用户所编写的无固定存储区的块,它为不带“记忆”的逻辑块。所谓不带“记忆”表示没有背景数据块。当完成操作后,数据不能保持。这些数据为临时数据,对于那些需要保持的数据只能通过共享数据块(Share Data)来存储。
本工程涉及的功能FC包括以下一些主要的功能FC:
1.基本线形标定功能——FC91:
基本线形标定块,把4~20mA的信号转换为规定量程上下限的显示值。主要是处理压力(包括吸力)、氧含量信号、线性流量信号、液位显示信号以及阀位反馈信号等。
IN:符号地址或绝对地址
HI_LIM:量程上限
LO_LIM:量程下限
OUT:经过线性转换后的显示
FAULT:故障管脚
图3
2.温度线性标定功能——FC96:
由于焦炉检测信号中,温度信号占据了很大的一部分,而温度信号(热电偶信号和热电阻信号)经过转换后除以10直接得到的数值就是温度显示信号。
IN:符号地址或绝对地址
OUT:显示地址
FAIL:故障管脚
图4
3.换向保持程序——FC41:
焦炉交换过程实际是一个停止加热的过程,在交换过程中,管网压力波动比较大,因此在交换时刻需引入交换信号作为判断来保持20~50秒左右时间的流量控制系统输出值不变。
图5
图6
程序说明:
●2P1为交换信号
●DB41.DBD72为经过限位后的PID算法输出值?
●DB41.DBD16为手动输出值
●T1为时间延时器