Soft PLC PID Loop Issues??

Skim_Milk

Member
Join Date
Sep 2022
Location
Longmont, Colorado
Posts
4
Hello All,
Has anyone on here used Soft PLC brand PLCs?
I've just now started doing PLC programming and I am totally stuck on trying to make a PID loop work for a Mass Flow Controller for a vacuum chamber. I can see it generating a error value but it won't give me a output integer?

I'm very new to this field and I'm the only person in the building who knows anything about PLCS. Any help would be greatly apricated!!
 
Is your control direction (direct-acting/reverse-acting) set correctly? Is the PID loop in auto or manual? Is the output being overwritten somewhere else in the program? Those are the first few things that come to mind for me.
 
Is your control direction (direct-acting/reverse-acting) set correctly? Is the PID loop in auto or manual? Is the output being overwritten somewhere else in the program? Those are the first few things that come to mind for me.

I'm not familiar with with direct-acting vs reverse acting control directions. Could you enlighten me?

I have the PID loop set in auto mode right now.

I didn't find anything that would override the output.
The PID loop looks like this

Proc var: Raw input from Vacuum gauge
Tieback:0
Output: Run into some math for Argon gas correction and converting Volts to Bits for the MFC.
 
I'm not familiar with with direct-acting vs reverse acting control directions. Could you enlighten me?

I have the PID loop set in auto mode right now.

I didn't find anything that would override the output.
The PID loop looks like this

Proc var: Raw input from Vacuum gauge
Tieback:0
Output: Run into some math for Argon gas correction and converting Volts to Bits for the MFC.

Control direction is often explained using heating vs cooling (and therefore reverse acting loops of all types are sometimes called "heating loops" and direct acting loops are sometimes called "cooling loops"). In a heating loop, if your controlled variable is heat and you're measuring temperature, when the temperature goes up, your output goes down (output direction is opposite of PV direction). In a cooling loop, when the temperature goes up, your output goes up, so it's direct acting (output direction is the same as PV direction).
 
To reiterate and expand on what @mylespetro wrote, a direct-acting loop increases its Controlled Variable (CV; a.k.a. output) in response to an increase in the Process Variable (PV).

So in the cooling (direct-acting loop) example, if the temperature increases, the PID loop increases the amount (rate) of cooling (CV e.g. refrigeration, or flow rate of cold water into a heat exchanger) applied to the thermal system where the temperature (PV) is measured, in order to counter the increase in temperature (PV). Again, direct-acting loop means increased PV results in increased CV.

And in the heating (reverse-acting loop) example, if the temperature increases, the PID loop decreases the amount (rate) of heating (CV e.g. fuel to a furnace, or flow rate of hot water into a heat exchanger) applied to the thermal system where the temperature (PV) is measured, in order to counter the increase in temperature (PV). Again, reverse-acting loop means increased PV results in decreased CV.

How direct- vs. reverse-acting loops are implemented varies from vendor to vendor; I expect a look at the SoftPLC manual could resolve how you need to do it.

  • One way is to always define Error as (PV - SP), where SP is SetPoint, and vary the sign of the gains: positive for a direct-acting loop (ΔPV>0 leads to ΔCV>0); negative for a reverse acting loop (ΔPV>0 leads to ΔCV<0).
  • Another way is is always define the gains as positive values, and to vary the definition of the Error: Error = (PV - SP) for direct-acting loop; Error = (SP - PV) for a reverse-acting loop.
  • A third way is to always define the gains as positive, and to have a switch that says "direct" or "reverse;" but read the vendor's description of this option and consider the sidebar below for the meaning of direct and reverse.
Sidebar: if you ask The Google about Reverse-acting vs. Direct-acting behavior, you may find some apparent inconsistencies, but usually that is because some writers refer to the loop action, and some refer to process response: a direct-responding process (e.g. furnace where increasing fuel flow rate increases temperature) is controlled by reverse-acting loop; and vice versa. Strictly speaking, to my mind at least, a process has a response, and a loop has an action, but that does not keep anyone from using the terms more loosely, and I am fairly certain we could find articles discussing a direct-acting process controlled by a reverse-acting loop.
Another process, similar to the heating/cooling example conceptually, is level control of a tank. If the loop's CV is controlling the rate of flow into the tank and the flow out of the tank in uncontrolled (by the loop; obviously something is controlling the outlet flow), then that is analogous to a heating loop and the loop will be reverse-acting. If the loop's CV if controlling the rate of flow out of the tank and the flow into the tank is uncontrolled (by the loop), then that is analogous to a cooling loop and the loop will be direct-acting.

OP mentioned their PV is a vacuum gauge, and CV is something to do with MFC. I don't know what the latter is (Mass Flow Controller?), but if it is something like the speed of a vacuum pump, then that would be a direct-responding process and require a reverse-acting loop (analogous to the heating process where specific heat, and its proxy temperature, is being added by the CV, or the level control process where the CV controls the inlet flow). But if the PV vacuum gauge measured absolute pressure, so a higher vacuum corresponds to a lower PV, then it would be a reverse-acting process and require a direct-acting loop.
 

Similar Topics

Hi all. This is a very specific issue. My first time with a Modbus ProSoft. Customer setup doesn't make any sense but we're stuck with it...
Replies
8
Views
359
I am looking for any simple sample isp plc file for a Delta PLC. I currently have version 3.06 if that matters. I am looking to practice...
Replies
1
Views
689
Have matched communication parameters of both, DOPSOFT HMI and PLC Fatek. Yet an error keeps appearing "Failed to open port COM1". I believe...
Replies
0
Views
680
hello guys, I'm trying to establish a connection between Indusoft 8.0 & simatic Plcsim but I keep getting the following error: error...
Replies
3
Views
1,354
So reading the internet this came up... https://iot-analytics.com/soft-plc-industrial-innovators-dilemma/ Soft PLC's vs Hard PLC's and compared...
Replies
22
Views
7,459
Back
Top Bottom