From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-0.9 required=5.0 tests=BAYES_00,FORGED_GMAIL_RCVD, FREEMAIL_FROM autolearn=no autolearn_force=no version=3.4.4 Path: border2.nntp.dca1.giganews.com!border1.nntp.dca1.giganews.com!nntp.giganews.com!goblin1!goblin.stu.neva.ru!eternal-september.org!feeder.eternal-september.org!mx02.eternal-september.org!.POSTED!not-for-mail From: =?UTF-8?B?QmrDtnJuIEx1bmRpbg==?= Newsgroups: comp.lang.ada Subject: Re: Any missing e-mail, social groups, etc? Date: Sun, 30 Nov 2014 12:11:58 +0100 Organization: A noiseless patient Spider Message-ID: References: <87k32hnfjw.fsf@adaheads.sparre-andersen.dk> <87ioi0rjkn.fsf@ixod.org> <877fygoi4u.fsf@adaheads.sparre-andersen.dk> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Injection-Date: Sun, 30 Nov 2014 11:10:15 +0000 (UTC) Injection-Info: mx02.eternal-september.org; posting-host="b27882ec425dcaf61005160f34e643be"; logging-data="21891"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18SPs1kFzNnlrhQ4pLaTAWi" User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Icedove/31.2.0 In-Reply-To: Cancel-Lock: sha1:9o+61xAEKlgmXdD9EJk3wvazGD0= Xref: number.nntp.giganews.com comp.lang.ada:191096 Date: 2014-11-30T12:11:58+01:00 List-Id: On 2014-11-30 11:13, Dmitry A. Kazakov wrote: > On Thu, 27 Nov 2014 16:55:27 +0100, Björn Lundin wrote: > >> ... but I wrote a bridge between OPC and our system, also >> all Ada - a windows service coupled with opcda.dll via gnatcom. > > Great. Which one OPC was it? It was developed using Matrikon's OPC simulation But at Netto, Siemens is used (I think it's called OPCS RSLinx OPC Server) And at another site - a papermill - we used Allan Bradley. That one is though replaced by proprietary socket protocol, because of less complexity. It is also tested with ABB's opc-server, 10 years ago. > I gather you did an OPC client. Yes, as a socket-server windows service. I listens for incoming subscription requests, keeps the sender in a list, and when a signal changes, the subscriber is notified via a simple but proprietary text-based protocol, that I wrote. Of course, the subscriber may write values to the ops-server to. client 1 <- sockets -> win-service <--> opc-da <--> opc-server <---> plc | client 2 <- sockets -| .. | | client n <- sockets -| There are 2 socket connections for each client. 1 - for control, sending sbuscriptions, write commands etc 2 - for receiving new values from plc >Do you plan to publish a reusable version > for Ada community? This was in 2003. I used Ted Dennison's Windows service package (for SETI), AWS 1.2, AdaSockets 0.16 and of course code of my own. But to release it, I need a go from my manager. And looking at it, it will need some freshing up. However, if there is interest, I can write/publish a simpler client, still using the same technique, but skip the part with publish/subscribe/sockets/win-service client 1 <--> opc-da <--> opc-server <---> plc AWS is used only as a debug tool, Ie you can browse to see which the subscribers are, and what they subscribed to. Netto has about 1600 signals, so the services in cloned int 6 instances managing about 250 signals each. > [ I used once a Softing's OPC client, it was a horrible MFC mess. A new OPC > UA (TCP/IP-based) is even bigger mess. ] > And so is OPC. And the opc-server usually polls the plc. so it is slower that direct socket. -- Björn