一般而言,使用PLC进行控制的场合是不需要进行PID编程的,目前PLC中都带有PLC的控制模块,只要对有关的参数进行设置就可以很好的工作了,可谓是“傻瓜式”的控制,这也大大降低了对开发者的要求。但在使用工业板卡的场合,遇到需要进行PID控制的工艺时,如果不是采用组态软件进行开发的话,就必须使用高级语言做出PID的控制程序,这里给出一个最简单的PID控制程序,以对大家有所启发,这里使用的是PID的增量控制式。因为程序比较简单,这里不做进一步的解释,需要说明的是,这个程序虽然简单,但却有着使用性,稍作修改就可以用于工业实际,当然,仍然由进一步修改的余地,比如进行防积分饱和运算、加入滤波处理等等。代码如下: Option Explicit Dim EK1 As Single, EK2 As Single Dim U As Single Dim Uk As Single, Uk1 As Single, A As Single, B As Single, C As Single, Ek As Single Dim Ti As Integer, Td As Integer, Kp As Integer Dim SP As Single, PV As Single Private Sub Timer1_Timer() Ti = Val(Text1) '读取积分时间值 Td = Val(Text2) '读取微分时间值 Kp = Val(Text3) '读取比例值 SP = Val(Text4) '设定值 Text5.Text = Slider1.Value PV = Val(Text5) '模拟的反馈值 If Ti = 0 Then A = Kp * (1 + Td) Else A = Kp * (1 + 1 / Ti + Td) End If B = Kp * (1 + 2 * Td) C = Kp * Td Ek = SP - PV Uk = Uk1 + A * Ek - B * EK1 + C * EK2 If Int(Uk) <= 0 Then Uk = 0 '对输出进行调理,实际使用时灵活掌握。 If Int(Uk) > 1000 Then Uk = 1000 Uk1 = Uk EK2 = EK1 EK1 = Ek Text6.Text = Uk '输出显示 End Sub
|