![]() |
PLC Recommendations for Horizontal Fuel Tank Doser Project
Greetings from all the way down here in New Zealand:-)
I have a challenge for you all..... I have a need for a PLC to run a Doser pump to pump Additive into a Diesel tank. The tricky bit is that the Main tank/cylinder is horizontal, so the maths isnt nice and straightforward like if it was a vertical tank. The other tricky part is that tank filling happens at random times by a third party, and is a random quantity. Unfortunately there is no key lock, or hatch cover, or button press or any other easy digital triggers to alert the PLC that the tank is being filled. We have an Analog pressure/level sensor which needs to understand/realise when the tank is topped up with diesel and that will trigger the Doser Pump routine. We need to send alerts/updates via SMS/Txt. So, I was looking at the Siemens Logo with CMR2020 cellular modem. The modem integrates nicely with the Logo and it will let me send and receive txts/status etc. Unfortunately I dont think the Logo will be able to do the complicated maths though. PlanB is to use a calibration Table for the tank contents (more accurate), however the Logo cant handle tables, so was thinking of Move/Compare type blocks, but again I think the Logo would be limited by its available Block memory? PlanC is to look at a S7-1200 which can do the complicated maths (Calculate). It doesnt do Tables though, so was thinking of Move/Compare type blocks as the S7-1200 has the block memory capacity? It looks like the CP1242-7 modem works with it and will do what I require. PlanD(!) - Looked at Eaton Easy4 - as it does Tables, but doesnt do complicated maths. The Easy4s cant receive SMS/txts, only MODBUS TCP. There are a few other requirements ie. need 2 Analog inputs, 1 High speed digital input (200Hz) for Flowmeter, 2 Digital inputs for buttons, and 1 Digital out for Doser pump. So, Long story short, I am looking for Hardware suggestions/recommendations please. Many thanks. Cheers, Steve |
If the PLC does not have trig functions but does have floating point math, they are, in principle, straightforward to approximate (cf. https://ntrs.nasa.gov/api/citations/...9700026648.pdf), six digits of accuracy is only two terms, but the kabuki dance needed to get to those two terms is even longer, so the only question is whether the logo PLC can provide entough instructions.
|
Quote:
|
Well, to be fair, I did not write "simple, but "straightforward," as in "Your destination is straight ahead, a mere thirty-eight miles down this bicycle path" ;). It's all in the bookkeeping.
Whoops, I think this may be quicker: https://stackoverflow.com/a/394512/1992064 |
Until I see a better platform, my recommendation for PLC platform remains the same - Beckhoff with TwinCAT-3 software.
Basic arithmetic and trig functions Extended mathematical functions (paid for library) If those aren't enough, you can always add the free OSCAT user-made functions and function blocks library, loaded with all the math functions you could ever realistically ask for, plus many, many others. OSCAT Library documentation OSCAT (adjusted for TwinCAT) download Matrix Math (TcMatrix) library for TwinCAT TF6350 - enables the transmission of SMS messages or emails using PLC function blocks SendSMS Function Block |
FYI the S7-1200 would allow you to implement a calibration table if desired.
|
The way we have been doing this is by using the flow meter pulses and adding what ever per 10,100 or 1000. For gas we were adding as the trucks were filling at the rack. Same gas different additive for each brand.
|
Quote:
The Logo doesnt do floating point math, so I guess that its not an option. My head hurts looking at that document! |
Quote:
I have spent the afternoon looking around their site, and reading the manuals etc and have learnt a lot! Unfortunately, in my requirements, I failed to say that I also wanted to contact/interrogate the device via SMS/txt. The TF6350 SMTP/SMS Solution appears to be only Outbound? |
Quote:
I cant find any doc or reference to this in the manual. Conceptually - how would this be done? Cheers, Steve |
Quote:
However, we have no control over the filling process at all and cant capture flow rate during the fill :banghead: |
A flow meter would be the way to go. Probably less expensive, more accurate and very simple. You can use tank gauges. I did a job with omntec and was able to get a 0/10 output to use for other equipment + around here you need a approved high tank alarms.
https://morbros.com/products/gauges-...tronic-gauging https://www.omntec.com |
Quote:
What type of math does Logo have available? Can you point to a manual? I am looking at this and there isn't even fixed point math available. I find it hard to believe that hardware could handle SMS. What sort of accuracy are you after? |
Quote:
The program can be in one of several states:
But the extra effort to develop such a scheme would pay for a more capable PLC, many times over. |
S7-1200 can definitely do the job.
I dont know if there is library function to do a calibration table, but even if there is I would prefer to write my own in SCL (equivalent to Structured Text). I wouldnt use the Calculate block. There should be plenty memory available. I think that any modern PLC can do the job easily. Especially if it supports Structured Text. A 'smart relay' such as a Logo will probably be hard pressed to do the job. Not impossible, using integer math and various tricks, but the saving on hardware will be lost in time spent to get it working. |
Quote:
|
Quote:
Reliably detecting a filling event will likely be more difficult than calculating the dosing. Calculations are easy; measurements are hard. |
Quote:
https://support.industry.siemens.com...?download=true No it doesnt look like it can do floating point math. Surprisingly it handles modem integration quite well and the Logo has a specific dedicated CMR2020 modem for it. https://support.industry.siemens.com...?download=true Up to +-5% is acceptable. |
Quote:
What PLC would you recommend that would be capable? |
Quote:
|
Quote:
There is no LAN/WAN connectivity unfortunately. These are 30 Remote sites which will all have this standalone PLC solution, so we need to be able to contact/interrogate the PLCs. |
1 Attachment(s)
You need floating point, but you can do the calculation with multiplication and addition based on level.
|
Quote:
CU8210-D004-0103: LTE USB modem. See pg. 8 of the documentation here. - "The USB stick can also receive and send text messages using the Short Message Service (SMS)" Add the Cabinet dome for protection of the device. Explore the various IPCs and Embedded PCs available. It appears your application is rather small and simple. Any IPC or CX equipped with USB port should work just fine. For applications where the PC/CX might be exposed to harsher environments, I would opt for something in the CX line (Embedded PC). CORRECTION EDIT: The LTE stick can only operate with Windows 7, Windows 10, or TwinCAT BSD. This limitation may inherently omit a few of your options for PC/CX selection, as some of the "Economy" CX's are only available with Windows CE (ex..CX9020). |
Quote:
|
1 Attachment(s)
Quote:
Attachment 60648atan(1) would be replaced by 0.785... in the actual case. But on MicroLogix the lookup table would be available anyway. |
Here you go....
FB_CTRL_LIN_INTERPOLATION The caveat is that the above FB is part of a paid-for library (TF4100 Controller Toolbox), meaning if you want to use this for all 30 PLC's, you would need to purchase this library for each one of those 30 stand-alone PLC's. The cost of the library is dependent on the 'Performance Level' of the IPC/CX. We purchased the library for a performance level 70 IPC, and I believe the cost of it was ~$450 USD. For your application, a performance level 40 IPC/CX is all you would require, and that's only because you need the modem USB stick, which requires Win7 or Win10. A much cheaper option in lieu of the TF4100 Controller Toolbox library: Explore the FB's and Functions in the free OSCAT library I linked in a previous post, particularly "LINEAR_INT" on page 101, and "POLYNOMIAL_INT" on page 102. One of those should work for your application. The OSCAT library is free!! You could also just code a polynomial in your logic. I did that for two of our machines in RSLogix500, with some pre-work in Excel. |
Math is not the problem for any but the most rudimentary processor; this could be done even if only integer math was available, though it would be a mess.
So to answer the OP, look for something that handles the SMS requirement cleanly and has either floating point with square root, or the capability to store a lookup table. A lot less time is going to be spent coding how much to dose than coding when to dose. |
Quote:
|
Quote:
I am very impressed with Beckhoffs offerings and am in touch with the New Zealand agent now. Cheers! |
Quote:
Cheers! |
Hi Sengle,
I'm late for the discussion but I think you would save a lot of time with S7-1200. It's by far more cappable and the LOGO programming software it is dificult to use for complex logic. Also fo S7-1200 there is the Library of General Functios available that can be downloaded from https://support.industry.siemens.com...view/109479728. It is free of charge but needs to be registered. This library includes many usefull functios like Non Linear Interpolation, Limitation of rate of limit, temperature conversions, signal generators. Best regards, Kelkoon |
+1 for the S7-1200, as long as there is an SMS library.
And not that it would be worth it, but even with only 16-bit signed integer math, the tank parameters can be approximated reasonably well: see this link. |
Quote:
Its looking more and more like S7-1200 is the way to go. I am investigating their CP1242-7 V2 Modem as it looks like it will let me do what I need to do. |
TL;DR
Although there is no reason to do so in 2021, the horizontal tank can be modeled with integer math alone, as close as the integers allow: see this link. |
There's nothing much this Edge beast from Opto22 can't do!
|
All times are GMT -4. The time now is 06:56 AM. |
.