DL06 capabilities

T

Thread Starter

tom cruize

hello all,

i'ld love a few pointers on a mini-job (my dissertation, to be precise) i have. i believe a little background on myself will suffice.

i'm an young instrument engineer who has returned to school. while i have 'dirty fingers' (lol), i have next to no experience working on a PLC.

presently, my dissertation requires that i implement a model predictive control (MPC) algorithm on a PLC. the PLC i'll be working on is a Direct Logic DL06 (model D0-06DD1). i am presently at the feasibility study stage of the work. i do realise the need to purchase some additional hardware (primarily analog i/o option modules) but need further clarification abt a few other things.

1.) THIS IS NOT A STUDENT POST (ie, requesting for answer(s) to my homework)

2.) is there a way of calculating (or a rule of thumb, for) how much memory i will require, or more generally, how much memory a particular application may require?

DL06 has 14.8K (word) total memory, for both ladder memory (7680 words) and v-memory (7616 words) - not very sure what this means yet. i need to knw if this is enough for the job at hand or a memory expansion (not an option i have for this job) is necessary.

3.) DL06 has instruction types which include loops, floating-point math, table functions and subroutines; i hope all that is available is enough for the purpose i require. in other words, can the available programming language (primarily, ladder + the instructions set) accommodate the MPC algorithm?

4.) any other general guidelines on how to go about this job (ie, the PLC programming phase) will also be appreciated.

thank you.

ps:
A. as regards the MPC, it's nothing very fancy; i'm looking at a controlling a 2-input, 2-output plant. if any further details are required, i will gladly oblige.

B. i tried not to be too academic in my questions... this is the best i cld come up with.
 
There's nothing wrong with asking "student questions". What people don't like is "do my homework for me so I don't have to" questions.

The usual way of calculating how much memory is required is to guess based on similar existing applications. Alternatively, you can divide the application up into equal size sections, implement one of them, and then multiply the size of that by the number of sections.

As to whether the PLC has the necessary instructions, I doubt that anyone could answer this. What you need to do is to identify the areas which may be a problem and see if you can implement them.
 
W

William Sturm

I have used the DL-06 many times. The DL-06 has floating point math support, which is very nice for a PLC in it's price range. You can work with 32 bit double words, also very nice for a micro PLC. The math instructions are similar to what you might find in a 16 bit microcontroller with a C library, it should do what you need. The math does take a little bit to learn however, it is much more like working in assembly language, loading accumulators, process accumulator, storing in memory... The newer math function blocks may help with that process, but I like to calculate the old fashioned way.

I have never come anywhere near taxing the memory limits. I guess if you need huge arrays of data, you should do some calculations. The ladder memory is for your program only, the V memory is for variables (data). I'm not sure how to calculate program memory, you will probably find some answers in the manuals.

Bill Sturm
 
C

curt wuollet

Yes, it would take a very large program to run out of memory. I think you would start running out of time first*. If it won't run on the DL06, you're probably in PC territory. You can count bytes and get the size, but it's extremely tedious and error prone. And you actually need the program to calculate the space:^) Probably easier to just try it. Complex math will use space, but the DL06 is pretty roomy for a small PLC. I will say that I think it's rather ambitious, and unless I'm missing something, you will need a lot of iterative stuff that doesn't fit the PLC model very well. They really only like _one_ loop:^). Before I committed, I would have a heart to heart with the smartest guy you can find at Automation Direct. They _might_ be able to help, and will certainly try. In the end, we know too little about the PLC executive to say for certain. It might run fine, or maybe you have to extend the watchdog. Or maybe it tosses your registers when it misses a scan. Or maybe I'm underestimating the platform. But we can't know with a black box. And it would suck to hit a roadblock late in the game.

* The amount of time you have to calculate between scans. Software floating point is pretty slow and we don't know there's hardware.

Regards
cww
 
W

William Sturm

Good points about the time requirements. The DL06 does have for/next loops and you can reset the watchdog timer inside the loop. You can also set the WDT limit high, I'm not sure how high, but I cranked it up over 2 seconds just now in offline mode (I did not try to run it on an actual PLC like that, but it should be OK). I doubt that the DL06 has a floating point processor, but it seems to crunch numbers pretty fast.

Another option would be to use the Basic Coprocessor card. Then you have a bunch of memory and a naturally iterative programming environment. This might be disqualified as not really PLC programming however.

Bill Sturm
 
C

curt wuollet

I suppose it would depend on the model. Modeling processes and adjusting the results is not something I would pick a DL06 (or other PLC) for. I'm not very familiar with the math involved. My criteria are: Would I try this on a fixed bid or a short term contract that has to work? I assume you have problems if your dissertation doesn't pan out. If the folks who know the DL06 internals were comfortable, yes. Without research, yes or no right now?

No Bid.

Regards
cww
 
T
first, my apologies for the delay in my response - i really do have quite a bit on my plate at the moment.

thanks to everyone for their input(s). each has highlighted one or more points i will have at the back of my mind if, and when, the actual coding commences.

i admit i left out some relevant info. for instance, what i intend to implement on the DL06 PLC is really a 'stripped-down' MPC algorithm. by this i mean, a lot of the complex bits found in a commercial MPC application/solution will be cut out. essentially, this translates to far less in amount of data handled as well as number of iterative computations required.

however, as regards the iterative stuffs (got loads of that), i'm going with the advice to contact a smart dude at AD - iterations are definitely the heart of this algorithm.

all in all, thanks to everyone (griffin, sturm and wuollet) once again for taking the time to drop some lines.

cheers!
 
Top