Today’s post continues the series on PLC platforms started last year. This is another guest post from Steve Myres, who also wrote an article on Indirect Addressing.
Articles in this series include Allen-Bradley, Siemens, Koyo and Panasonic platforms. I wrote the first three articles myself since I am familiar with them, but since I don’t know much about these other brands I have deferred these posts to others with more expertise. On that note, if any of you readers would like to contribute an article on a PLC platform (or other automation company!) please let me know. These articles are not meant to be advertisements for these companies, but are rather an unbiased yet critical look at features (both pro and con) on the platform. In particular articles on Mitsubishi, Omron, GE and Modicon would be awesome!
And now on to Steve’s post…
Idec PLC Review
Universal analog inputs. It’s not uncommon for a single analog input module to handle both milliamp inputs such as 4-20ma or 0-20ma and voltage ranges like +/- 5V or 0-10V, sometimes on a point-by-point basis or selectable globally for the entire module. However, Idec is the first brand I’ve seen that also allows temperature inputs with numerous thermocouple and RTD types all on the same module with the ma’s and volts, and all configurable point-by-point. There are scaling and filtering options available in config too. You don’t have to write the scaling and filtering in ladder.
Easy (configurable) Modbus master. Idec’s Modbus master is a fill-in-the-box config exercise. You fill in a table with your slave requests (one or more requests per slave), which slave registers you want to read or write, and what registers in the PLC the slave registers will map to. You can still adjust the config from ladder at runtime by accessing the special memory registers that hold the config, but for most applications you won’t need to. You simply read and write the mapped registers in the PLC as if you were using the slave register contents directly, and the PLC takes care of the Modbus reads and writes to keep the two synchronized, with no ladder footprint at all. This is the cleanest Modbus master implementation I’ve seen in any PLC.
Full simulator. Some brands give you a free simulator, but limited in I/O count or some other way, so you may not be able to simulate your actual program, so their simulator becomes more of a trainer. Other brands offer a full unlimited simulator but you have to purchase it. Idec includes theirs with WindLDR and as far as I know, it will run any program any of their PLC’s will, and you can access all the I/O and so on.
Rung execution control. There is a cool feature that allows you to suspend execution of one or more rungs while debugging an app without editing the ladder. You can select a range of rungs and the right-click menu has an option to simply shut them off. Very handy, and a feature I’ve seen nowhere else. Their forcing and online manipulation of bit values is among the most convenient too. Manipulation of integer and real values isn’t quite as good, but still pretty convenient.
Low cost. The PLC’s and digital expansion modules are very inexpensive, and analog expansion is reasonable. Non-Slim models can add an extra serial port for less than $50, and Slim models can add one port to the left of the CPU also very inexpensively, and several more on the right of the CPU (although those are well over $100 due to having an on-board processor). I think you can have a total of seven serial ports.
Good esthetics and point density. The MicroSmart is a very clean, attractive design, and in the “Slim” models the point density is good in points / module, points / rail inch, points / panel in^2. Points/panel in^3 is typically less important, but is still good with this platform.
A lot of the things I dislike or find missing may be due in part to my programming style. Your mileage may vary, as they say. I know people who swear by these.
Idec has no free-form math box. Allen-Bradley (CPT), Direct Logic (MATH, MATHBIN, MATHR), and Do-More (MATH) all have an instruction where you can enter an extended arithmetic expression and store the result in a register you choose. (Register 1 = SQRT(Register 2 ^ 2 + Register 3 ^ 2) or Register 5 = 3 * SIN(Register 4)) A-B and Do-More even allow free mixing of types (INTs with DINTs with REALs, and the result is done with full floating point precision and then converted to whatever data type is requited I’m not aware of any other brands that have this, but I use it a lot and feel the lack when programming on Idec or other platform that doesn’t have it.
You can’t mix data types in math. This is very reminiscent of Siemens. You can’t do arithmetic on numbers of different types, for example adding an integer to a floating point value. You must first convert one of the values to the same type as the other, then the math can be done with all the values the same type, though the result may not be the type needed and you may have to convert that too. In conjunction with the lack of a freestyle math box, this can make math very cumbersome. I actually have programs where I maintain the same variable as two different types in two different locations. Also, MUL and DIV boxes automatically promote the result to two registers (32 bits). I understand why they do the data size promotion, but I constantly forget it and it trips me up, and most other manufacturers don’t do it, so it’s not absolutely necessary.
Indirect addressing is somewhat weak (see my article on dynamic/indirect addressing for a more detailed discussion). I’d prefer global availability of indirect addressing in any instruction rather than viewing it as a special case and providing one instruction for indirect access to registers (well actually, two slightly different versions of one).
Down-counting timers. Idec timers start from the setpoint and count down to zero at expiration. This is probably one of those things where you can’t dogmatically say one way is right and one wrong, but the rest of the industry is so unequivocally the other way (timer accumulators increase) that it makes Idec hard to deal with if you regularly program many different brands. This would probably not strike many Idec-only programmers as an issue because it’s become automatic for them, just like the up-counting expectation has become automatic for me. OTOH, one way I use timers you might compare to the drum timer on a washing machine (one of the good washers, not one of the new electronic ones). Rather than using a timer for a single discrete interval and looking for the completion bit, I let it free run and make various comparisons with the accumulated value. When used like this, preferring up-counting rather than down-counting timers doesn’t strike me as subjective.
Limited I/O capability. You can only do about 15 modules of local and extended-local I/O, although the controllers all master Modbus so you can use additional PLC’s as dumb I/O, or use commonly available Modbus distributed I/O and it becomes virtually unlimited.
I’ve found their runtime editing functionality to be non-intuitive (though I haven’t taken an Idec class, so that might more my fault than theirs). It seems to apply to only certain processors under certain situations, and I haven’t had the time to try to puzzle it out.