Sign in to follow this  
Followers 0
mzobrest

Alternatives to RsLogix5000/CompactLogic

18 posts in this topic

I am looking alternatives other than AB that is as easy to use as RsLogix5000. Specifically, does anyone have comparable software that is as easy to use and can use pointers for muli-dimensional arrays? And, have hardware pricing comparable to Compactlogix? I am frustrated with Rockwell and their draconian customer support. All the other software I have experimented with has been pretty basic and clunky compared with RSLogix5000, but I have a hard time believing someone doesn't make something comparable. Just need a little direction which way to look.

Share this post


Link to post
Share on other sites
Closest thing to this type of "big" PLC that I know of is GE's "PACS" system (R3xi, r7xi). However, customer support is highly location dependent...get a good local vendor and it's great. Get a bad one and you'll wish you never looked at it. Siemens is supposed to be pretty good as well. Customer support is highly variable but again, get a good local vendor and life can be very good. In both cases, be prepared to be thinking "seems similar but not quite as good" to yourself.

Share this post


Link to post
Share on other sites
As for Siemens, then there is the new S7-1200, and there are the 'older' S7-300/400. The new S7-1200 should allow indirect addressing directly in ladder. And they are also very low cost. Similar to AB ML1100/ML1400 in capability, but less than half the price as far as I can tell. The older S7-300/400 do not have as easy indirect addressing. I use the programming add-on SCL for this and other reasons. It is more like programming in pascal than in traditional PLC languages. I cant live without it now. However, this is of course a much more expensive solution. Performance of an S7-300 is like CompactLogix and up. Price is approx 20-40% less.

Share this post


Link to post
Share on other sites
Are these glorified S7-200s or do they run the S7-300/400 software? The S7-200s allow indirect addressing and the S7-200 STL is easy to use. I don't hate everything Siemens, just Step7 BTW, I am not ignoring you. I am just hoping that if I ignore it my Step7 project it will go away. I have been gone and will get back to it this week. mzobrest, I would not consider the S7-300. One spends more time messing with the tools than getting the job done. Nothing is intuitive and I fight it for every little thing. A lot of people really like the Omron PLCs. Omron has Ethernet cards that support Ethernet/IP so you should be able to use a lot of the same I/O. I have spent a limited time progamming an Omron but the programming is fairly straight forward. I don't know multi dimensional arrays. Actually you don't really need multidimensional arrays. I just ARRAY1[Row*RowLength+Col]. I know it isn't as pretty as ARRAY2[Row,Col] but it gets the job done. I would also stay away from pointers and anything that requires assembly language like programming. You end up spending too much mental energy on the programming compared to solving the application.

Share this post


Link to post
Share on other sites
I would highly recommend the Bosch Rexroth Indralogic PLC's. They run a powerful version of CoDeSys that allows multi-dimensional arrays and structures that are extremely powerful. Though the IEC 61131 programming language takes a bit of getting used to its well worth the effort. http://www.boschrexroth.com/business_units...ic_en/index.jsp And NO I do not work for Rexroth or any affiliate.

Share this post


Link to post
Share on other sites
Since you ask: The S7-1200 and STEP v10 are the first in a new generation of S7 and STEP7. As far as I understand, STEP7 for all the PLCs will be completely rewritten. So it will be relevant for S7-300/400 also. But not until 1 or 2 years at least. But lets not hijack this thread.

Share this post


Link to post
Share on other sites
I am frustrated with Rockwell and their draconian customer support. That says it all! There are many good things about AB systems, but when you work with them you almost get the feeling that they went out of their way to make it difficult and over-complicated, so that you are forced to use their costly customer support.

Share this post


Link to post
Share on other sites
One of the problems with AB's internal development is that they do a lot of things by committee, and that marketing has a huge sway over what gets done and how. One of the problems with the Logix 5000 series in particular is that they made a huge effort to try to move away from "traditional" PLC's (as in utterly simple) and towards something that resembles more of a modern programming language. They also tried to incorporate a lot more "automatic" functions in terms of configuring I/O since the traditional ways of doing this were a royal pain (and much more complicated than Logix 5000). They also tried to implement a whole host of features that have been asked for over the years, and tried to push the PLC's out into new frontiers such as making motion control easier to implement for PLC programmers. They also went out of their way to maintain backwards compatibility to all the "ugly" old stuff as much as possible. For instance, the PID instruction is right out of a PLC-5. It is identical, warts and all. The PIDE instruction is pure Logix 5000. It has so many features that it is actually hard to use...this one was a marketing/committee boondoggle. There are also some warts from how the new stuff was implemented. A lot of the programming idiosyncracies are very obviously the result of the fact that Logix 5000 screams "C programmer" all over it. It is very obvious that "UDT's" are C "structs". They are a huge step up from the past, but nowhere near the power/flexibility of say the class system in Java, or the simplicity/fluid nature of the Python class/variable system. Online programming is much more flexible than the older PLC's but still very inflexible when you attempt to "move memory around" or change the size of memory objects. Removing these limitations would require a different and somewhat more radical approach to how online programming is implemented. It would require being able to substitute/dereference objects on the fly. This can be done (and is done in many languages). Doing it efficiently (without interrupting the ongoing program execution) is much more difficult. The whole task/program/routine system, and the separation of I/O configuration (mostly) from program/memory space is right out of the IEC 61131 standards playbook. If anything, AB should be praised for taking IEC 61131 and making it much more friendly than a lot of the competitor PLC's. Codesys, Siemens, and GE Fanuc PAC's PLC's are also IEC 61131 compliant, and good comparisons of where AB definitely made improvements to the limitations of the standard. Codesys allows intermixing ladder, function block, etc., on the same screen by creating anonymous routines and auto-boxing them in subroutine calls. Without this, ladder logic is limited to "basic" ladder instructions (XIO, XIC, OTL, OTU, OTE, and perhaps a timer or two). With it, you get roughly the same instruction set that is available with Logix 5000, and you can mix/match ladder and function block (among other combinations). It's a very slick design. BUT, moving in/out of editting the auto-boxed regions makes the editor much harder to use than Logix 5000. Another idiosyncracy is that some PLC's allow vertical ties between rungs. This allows for some nifty looking parallel branches as well as an alternative to the parallel branch for multiple outputs on the same rung (this is before Logix 5000 allowed multiple outputs in series). However, it completely violates IEC 61131 and you can achieve the exact same functions without a vertical tie even without multiple outputs in series. The end result is that Logix 5000 is chock full of features. Not all of them are easy to utilize. But I haven't found anything better with the competitors.

Share this post


Link to post
Share on other sites
Those are very valuable comments Paul. Does any modern 'regular' programming language have anything like the online programming of the PLCs ? I dont think so. And that is the reason memory isnt dynamically allocated in PLCs. This makes it impossible to compare the two scenarios with each other. I have seen on other forums that Twincat (and thus maybe also CoDeSys) has the best implementation of 'online change' when data structures are modified. If a UDT or the declaration of an FB is modified, then when downloading the modified program, all the non-modified data will keep the actual values, whereas the modified or added data will get the initial values. With Siemens, you can kiss the actual values goodbye. How is it with RSLogix5000 ? This is a small detail with huge ramifications. It is in the top-5 on my wish-list.

Share this post


Link to post
Share on other sites
I particularity like it when you are an OEM building a system for a customer, and the software license was purchased under the customer's name but with your money and Techconnect won't talk to you. Its fun trying to get the customer to provide their authorization number to you. And this always happens when you are running on your last straw at about 11pm at night trying to get the thing polished off. Too bad their PLC software works so well. Their other software is another story though, I have never seen a more tiresome product to work with as their Factory Talk View, its like its not even made by the same company. We only use it when forced to by our customers.

Share this post


Link to post
Share on other sites
Excuse for any English mistakes, I'm from Brazil and new in the forum, and would like to give my opinion. You would like the Modicon M340. It's a Schneider Electric PLC that uses Unity Pro Software. It's very easy to use and it's 100% IEC 61131 compliant. The price and hardware are great. It has hot swap for the I/O modules, up to 4 hacks, up to 1024 I/Os in hack, Memory of 4MB so you don't have to worry about variables or program size. You have a USB port for programming, a RS485 port and an Ethernet or CANOpen extra in the CPU. You will love the software (especially because you like RSLogix5000), Unity Pro has 5 IEC languages and the simulation feature (without need of add-ons). You have your multi-array and you can use it just like Pascal programmers do. You may create the your own Functions Blocks in any language and use it in any other language that you like (for example, you can create a function block in ST – Structured Text and use it in ladder) and during the simulation or monitoring you can see what is going on inside that specific block and even can make changes inside the block on-line. Because the USB port for programming, the monitoring function or on-line programming is very fast and comfortable. I not a Schneider Electric (Modicon) employ, but I used Modicon M340 in some projects here and realy liked it. For information and have already used some SLC 500 (RSLogix 500). I did not try RSLogix 5000, yet. But I have been in two Rockwell fairs in Brazil and had the opportunity to handle it a little bit. It's a nice software, but you should try Unity Pro.

Share this post


Link to post
Share on other sites
The answer is a qualified yes. You can do a lot of things with online programming. As of Rev 17, you can even do a "partial download". This takes the existing code and adds/changes it as needed to match a download. It also adds any necessary data structures but keeps all the existing structures (and data) intact. This all happens online. Logix 5000 uses a compiler, not an interpreter. It's pretty much a traditional compiler, too, even though it has a lot of dynamic features. So it also has a traditional compiler's limitations. Once you have compiled code, in order to ensure code safety (can't point to illegal memory and not breaking the user's view of the world), you have to somehow trap references to the "old" data structure. This can be done with hardware assistance (trap the memory reference via the MMU). Or it can be done by accessing all memory through a pointer (slow!) Or the compiler can keep usage lists for every data item, and can quickly recompile all the offending code (adds a lot of overhead and memory footprint indirectly). Or...you can do it the Logix 5000 way. UDT's and arrays are fixed once created. No changes are allowed. And old variables cannot be deleted. This sidesteps the issue entirely because code safety is guaranteed at all times since none of the "old" data is changed in any way. Unfortunately, this partial solution is still annoying because online programming still isn't quite 100% true online programming. It is one of the most requested features.

Share this post


Link to post
Share on other sites
I could not accept this way. Obviously you have to make incremental changes to your code and data declarations when you have a big project that is being commisioned in small steps. With STEP7 I can change FB data declarations and UDTs, and I can download the modified code and data, even on a running system. Trouble is that I lose the actual values. TwinCat and Codesys seems to handle this much better.

Share this post


Link to post
Share on other sites
I was trying to sugar coat it just a tad. Logix 5000 at this time doesn't let you make modifications to the structures in online programming. It also doesn't let you arbitrarily change I/O configurations (adding new modules) on Remote I/O, Controlnet, or Devicenet (other than putting I/O in the unscheduled time period of Controlnet, and of course local I/O). This is only allowed with Ethernet/IP. This is mostly a consequence of the design for Controlnet/Devicenet but there's no good reason that I know of to restrict DHRIO cards (not that anyone would be adding additional I/O to that bus). As I was saying, it CAN certainly be done. I don't know if Twincat or Codesys uses an interpreter or a compiler. With a good quality interpreter, it would be very hard to detect the difference (actually impossible...performance is the same with an aggressive "hot spot" compiler as it is with an aggressive interpreter with super instructions). Edited by paulengr

Share this post


Link to post
Share on other sites
If I understand correctly then it is like this. Can change structures on a running program ? ControlLogix + RSLogix : No. S7 + STEP7 : Yes - but actual values are lost (*) TwinCat (and maybe Codesys) : Yes - actual values are retained (**) *: It also requires that there is enough free memory in the PLC to fit in all the changed code and data before switching over to the new. **: I dont know but take a guess, that there are also memory constraints. However, since TwinCat runs on embedded PCs, memory is probably abundant. I am possitive that TwinCat uses a compiler, how they manage to retain the actual values I do not know. Hmmm... both Siemens and Rockwell have products for proces control, PCS7 and ProcesLogix. I wonder how they manage this topic with PCS7 and ProcesLogix. All this is of course just one detail in the big picture. I am aware that there are other areas where ControlLogix have advantages over S7, TwinCat and Codesys.

Share this post


Link to post
Share on other sites
Processlogix is a version of a ControlLogix that is targetted towards the process industry. It's meant as a DCS killer. I'm not 100% sure why a DCS killer is necessary though. The DCS vendors are doing an excellent job all on their own! Recently we were quoted a very basic bare bones DCS system from Honeywell to the tune of just $700K, something that would cost about 25% of that if implemented with ControlLogix PLC's and standard HMI/SCADA systems. That doesn't count the exhorbitant support contracts, or the quality of the "support" that you get for the money, or the lack of robustness in the equipment (hence the reason that redundancy is actually required and not just an option), or the fact that interfacing it to just about anything other than more Honeywell overpriced DCS stuff is an exercise in frustration and futility (reminds me of Star Trek "borg").

Share this post


Link to post
Share on other sites
Siemens Step 7 to me is like a PLC2, that memory map is a joke. I could not believe the crap you go thru to keep memory from overlapping. It reminds of all the bad things you could do with memory in C coding. Pointers are so bizarre or its like a bizarro world of pointers. RsLogix5000 keeps that all straight for u and even lets you view the memory without those VAT tables used in siemens. Pointers are lot easier to understand in RSlogix Of course the problem with RSLogix5000 is that it is too open and the good thing about it is that it is open archetecture. They give you enough rope that you can hang yourself.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0