J
Ok, I've kept a sock in my mouth for quite a while now... as Curt (and those that follow the Automation list ) know I'm not very keen on Linux and Open Source. But with the recent rash of email on this subject it's become an eyesore looking at my inbox . So if I can remove some mud from the water of this discussion I think everyone will benefit. The ongoing discussions are dancing around the same problem but are trying to answer it in different ways. Creating a new protocol for the sake of standards control does not necessarily solve problems, but certainly does increase the workload and delays finalization of developing that component. That's not to say that a new protocol may not be needed, but simply if you can get by with Modbus (for instance) then you have reduced the amount of new code you have to write and test. Modbus does seem a good fit, as it works very well with flat tag model devices such as LinuxPLC. There is no reason to treat a Windows box, another LinuxPLC, a LinuxHMI running locally, or a LinuxHMI running on a remote box any differently. Supporting multiple protocols (DCOM, Modbus, the proposed Open Communications Standard, and/or any other protocol) complicates the situation without providing added value. LinuxPLC does not have complicated communications requirements. You're simply dealing with transferring register values from a LinuxPLC to a client (no matter what that client is). I strongly suggest selecting or developing one protocol that answers that problem. Again, Modbus does seem a good fit. DCOM is not a data exchange protocol, so for LinuxPLC's purposes it's useless without something like OPC on top. I really don't think one of the goals of OSS or LinuxPLC is to promote the use of Microsoft Technologies such as DCOM. Yes, the easiest gateway to existing MMI's is OPC - but why not keep the Microsoft specific code on the Microsoft box? Think about it... Do you really want OPC on Linux? I don't know anyone that loves OPC. Lord knows I've spent too many a night under the heat lamp trying to solve stupid problems related to OPC. If you want to deal with developing a Linux standard IPC mechanism for exchanging industrial automation data values, please don't start with that brain damaged model. In the short run, you'd save time and energy by relying on sockets loop back and treating everything as a network operation - again developing one protocol. On the recent discussion of Pipes. That concept first surfaced in VMS before my time - I believe they were called MailSlots or MailBoxes. The concept has progressed and now exists in Windows as Named Pipes. If you want to create a model like that, as much as you may dislike MS I suggest you read up on their implementation as it is years old and works very well. Pipes is mostly for bulk memory copies. A major drawback is that it hides protocol level timeouts from the caller - since it is a simplistic, atomic API this causes problems during network hiccups. The caller doesn't get to manage error recovery or retries very cleanly. In summary, I strongly suggest selecting or developing one protocol that answers all the situations. Modbus would seem to be a very good solution that you can create now, without much further discussion. But there may still be reasons to head down the path of developing a new protocol. Modbus certainly does leave things to be desired. Since Modbus answers the simple problem, use the new protocol as an opportunity to introduce features it does not offer. For instance, if I were developing a new protocol today I would use a publish and subscribe model taking advantage of multicast. You can do it without dealing with multicast, or UDP, though that is not as efficient. There are advantages to multicast you may not yet realize. If you head that route, investigate PGM (Pretty Good Multicast or Pragmatic Multicast depending on who you talk to) from the IETF Reliable Multicast working group. It's fixing to head to RFC and will solve many of the problems Ron Gage expressed concern with. (There are also open source/GPL implementations available - but then I wouldn't know anything about that) Ok, sock back in mouth.
Jeff [email protected]
-----Original Message-----
From: [email protected] [mailto:[email protected]]On Behalf Of Curt Wuollet Subject: Re: LinuxPLC: Re: connectivity (OPC)
>Hi Juan
>
>There is another possibility that I like, > replace all that expensive stuff with Linux > stuff. I have to think that way, being a > peripheral on a massive NT network doesn't do > it for me. And I need to think that's possible > and a major improvement. Otherwise what are > we trying to do here? I am pragmatic enough to > see your point and I'm not criticizing you, but > we gotta have goals and it's my job to focus on > them. _______________________________________________ LinuxPLC mailing list [email protected] http://linuxplc.org/mailman/listinfo/linuxplc
Jeff [email protected]
-----Original Message-----
From: [email protected] [mailto:[email protected]]On Behalf Of Curt Wuollet Subject: Re: LinuxPLC: Re: connectivity (OPC)
>Hi Juan
>
>There is another possibility that I like, > replace all that expensive stuff with Linux > stuff. I have to think that way, being a > peripheral on a massive NT network doesn't do > it for me. And I need to think that's possible > and a major improvement. Otherwise what are > we trying to do here? I am pragmatic enough to > see your point and I'm not criticizing you, but > we gotta have goals and it's my job to focus on > them. _______________________________________________ LinuxPLC mailing list [email protected] http://linuxplc.org/mailman/listinfo/linuxplc