PLC STEP 7 Program -- 2
Budget: €30 – €250 EUR
I am looking for a freelancer who can create a PLC STEP 7 program using Ladder Logic. The program needs to be integrated in an existing Siemens PLCs project, and replace this function.
Hot Fluid Pump Control
We have a motor pump, controlled by a SINAMICS G120C inverters, that pumps a hot fluid (glycol) thru a circuit of several tanks for heating.
Each tank has a Temperature PID (with output configured to PWM) to control a valve that includes the tank in the previous circuit (valve on - receives hot glycol) or excludes from that circuit (valve off – no heating).
(see diagram in attached file)
Current Implementation:
The current (working) implementation of this system is a set of STEP 7 Organization Block (for SIEMENS S7-1500 PLC) that controls the velocity of the motor (TO_SpeedAxis using MC_Power, MC_Reset, MC_Halt and MC_MOVEVELOCITY) depending on the number of “Opened” valves (tank is receiving heat from the circuid).
We define in a Data Block the desired velocity for 3 levels of operation (low, medium and high) and the corresponding number of opened valves.
So, for example, if we define:
• Low operation:
o Number of opened valves: 1
o Velocity: 1000 r/min
• Medium operation:
o Number of opened valves: 3
o Velocity: 1500 r/min
• High operation:
o Number of opened valves: 5
o Velocity: 2000 r/min
If the number of opened valves (number of tanks heating) is 0, the velocity of the pump is set to 0 (for security) but then if one valve opens, the velocity of the pump is set to 1000 r/min, after a while 2 more valves open (3 in total), the velocity goes up to 1500. If one closes (2 in total) the velocity goes back to 1000 r/min…
At any moment any of the valves, controlled by an independent PID, can open or closes, so this evaluation is made in real-time.
We also have a pressure sensor in the circuit and, if for any reason the pressure goes up to 2 bar, the pump is halted (MC_Halt) and the velocity goes slowly to 0 and an alarm is generated (stored in an DB).
Desired Implementation:
We want to control the velocity of the pump only by the pressure of the heating fluid that the pump originates, not by the number of the tanks that are heating in a given moment.
Let’s say that the desired fluid pressure in the circuit is 1 bar. The velocity of the motor should go up and down to maintain that pressure. If the pressure of the fluid goes above 1 bar, the pump should reduce the velocity, if the pressure of the fluid goes below 1 bar, the pump should increase it’s velocity.
We want to maintain 2 fail safes in this design:
1. If all the tanks have their valves closed
2. If the pressure goes over the maximum security value (say 2 bar)
In either of this cases, the motor should be halted. In the second case, an alarm should be registered.
Hot Fluid Pump Control
We have a motor pump, controlled by a SINAMICS G120C inverters, that pumps a hot fluid (glycol) thru a circuit of several tanks for heating.
Each tank has a Temperature PID (with output configured to PWM) to control a valve that includes the tank in the previous circuit (valve on - receives hot glycol) or excludes from that circuit (valve off – no heating).
(see diagram in attached file)
Current Implementation:
The current (working) implementation of this system is a set of STEP 7 Organization Block (for SIEMENS S7-1500 PLC) that controls the velocity of the motor (TO_SpeedAxis using MC_Power, MC_Reset, MC_Halt and MC_MOVEVELOCITY) depending on the number of “Opened” valves (tank is receiving heat from the circuid).
We define in a Data Block the desired velocity for 3 levels of operation (low, medium and high) and the corresponding number of opened valves.
So, for example, if we define:
• Low operation:
o Number of opened valves: 1
o Velocity: 1000 r/min
• Medium operation:
o Number of opened valves: 3
o Velocity: 1500 r/min
• High operation:
o Number of opened valves: 5
o Velocity: 2000 r/min
If the number of opened valves (number of tanks heating) is 0, the velocity of the pump is set to 0 (for security) but then if one valve opens, the velocity of the pump is set to 1000 r/min, after a while 2 more valves open (3 in total), the velocity goes up to 1500. If one closes (2 in total) the velocity goes back to 1000 r/min…
At any moment any of the valves, controlled by an independent PID, can open or closes, so this evaluation is made in real-time.
We also have a pressure sensor in the circuit and, if for any reason the pressure goes up to 2 bar, the pump is halted (MC_Halt) and the velocity goes slowly to 0 and an alarm is generated (stored in an DB).
Desired Implementation:
We want to control the velocity of the pump only by the pressure of the heating fluid that the pump originates, not by the number of the tanks that are heating in a given moment.
Let’s say that the desired fluid pressure in the circuit is 1 bar. The velocity of the motor should go up and down to maintain that pressure. If the pressure of the fluid goes above 1 bar, the pump should reduce the velocity, if the pressure of the fluid goes below 1 bar, the pump should increase it’s velocity.
We want to maintain 2 fail safes in this design:
1. If all the tanks have their valves closed
2. If the pressure goes over the maximum security value (say 2 bar)
In either of this cases, the motor should be halted. In the second case, an alarm should be registered.