bgtorque
Member
Here's an interesting one. I have an S7-300 and am using TIA Portal V13. I have a pressure/flow (p/Q) control valve for oil pressure for controlling oil with feeds a thrust pad bearing, with respect to the thrust generated by the speed of the driveline. The oil supply has an accumulator that should be good for around 2mins supply and the PLC and control valve are all UPS controlled. So, should power be lost or the oil pump/drive fails the accumulator will ensure the oil supply for (hopefully) enough time to keep the thrust under control to bring the driveline down to a stop.
I am monitoring the driveline speed, the thrust/oil pressure/oil flow. I would like to continuously capture the characteristics of the speed vs. pressure/thrust relationship during normal running, so that I can use this data to command the correct pressure in the pad as the speed reduces.
i.e as the driveline increases in speed from rest up to say 2000rpm I might have (i'll use coarse steps)
0rpm 0kN
500rpm 1kN
1000rpm 3kN
1500rpm 7kN
2000rpm 12kN
So if I lose pump power at 2000rpm then teh driveline will start to coast down and I want to ensure that I am controlling thrust at 12kN initially and tehn as we transition down in speed it hits 1500rpm so I then control to 7kN, and so on.
Ideally I would like much finer steps, 100'rpm or even 10's rpm but am practical in the amount of data would need to be stored, so would find a sensible limit.
What would be the best practice in achieving this in terms of ladder code (ideally ladder as that's want I have most experience of). I'm guessing dumping the data to an array of x vs. y in some way? I could write something simply if it was just for a few points like I have described above as it would be a line of code for each. But lets say my speed is upto 20 000rpm then this would be a lot of MOV instructions and IF or == statements. There must be an elegant way of coding this simply that eludes my knowledge?
Any help would be appreciated.
Thanks,
I am monitoring the driveline speed, the thrust/oil pressure/oil flow. I would like to continuously capture the characteristics of the speed vs. pressure/thrust relationship during normal running, so that I can use this data to command the correct pressure in the pad as the speed reduces.
i.e as the driveline increases in speed from rest up to say 2000rpm I might have (i'll use coarse steps)
0rpm 0kN
500rpm 1kN
1000rpm 3kN
1500rpm 7kN
2000rpm 12kN
So if I lose pump power at 2000rpm then teh driveline will start to coast down and I want to ensure that I am controlling thrust at 12kN initially and tehn as we transition down in speed it hits 1500rpm so I then control to 7kN, and so on.
Ideally I would like much finer steps, 100'rpm or even 10's rpm but am practical in the amount of data would need to be stored, so would find a sensible limit.
What would be the best practice in achieving this in terms of ladder code (ideally ladder as that's want I have most experience of). I'm guessing dumping the data to an array of x vs. y in some way? I could write something simply if it was just for a few points like I have described above as it would be a line of code for each. But lets say my speed is upto 20 000rpm then this would be a lot of MOV instructions and IF or == statements. There must be an elegant way of coding this simply that eludes my knowledge?
Any help would be appreciated.
Thanks,