Hi Chris,
On Wed, 2022-01-19 at 12:52 +0000, Christofer Dutz wrote:
> Hi Stephen,
> 
> Thanks for your input :-)
> 
You're welcome, it's easy to be an armchair quarterback.;)

> With my statement I was referring to Modbus-TCP which will most
> likely be used with TCP,
Agree.
> but I agree I should have chosen a different example. (We should
> investigate how Modbus-ASCII differs and mabe also directly support
> that). 
Sorry, my bad, it is actually just ASCII for all PLC's (that I have
used anyway), and it is based on Hayes modem protocol. It is the
traditional serial communication for remote units at places like waste
water treatment plants, etc...
> I guess even Modbus is probably the version with the most variants in
> transport being used. However, I would highly doubt, that for example
> PROFINET will be anything else than raw ethernet frames sent on a raw
> transport (with UDP for setting up the connection). 
> 
Agreed.

> I didn't want to limit PLC4X to use only the "supported" ones, in
> general I think if a user wants to do PROFINET via Serial, the
> framework shouldn't keep him from trying, but the user shouldn't
> expect it to work.
> 
Okay, implimentation specifics can be an area of concern, so in my mind
"expect to work" has always come with caveats and in my experiences
too. 
> Also testing all these combinations is a bit tricky, as they require
> hardware for testing, and I at least don't have that.
> 
I have some ...
 * Rockwell Automation Micro820-20QBB, 1xSerial (RS-232/RS-485,
   Modbus/ASCII capable), 1xEth (Ethernet/IP, Modbus-TCP)
 * Omron CP1H PLC (x2), 2xSerial RS-232 Omron protocols, 1xUSB prg port
 * Red Lion Control's G308C, 1xEth, 1xRS485, 2xRS232, 1xUSB, pretty
   much any protocol you can pick for all ports except USB. (HMI with a
   micro PLC and mini PC more or less)
 * Raspberry Pi IIb, 1xEth, 1xSerial (needs linedriver addon for that)
 * Allen-Bradley PowerFlex 523 VFD, DSI I believe can run as Modbus RTU
If you need something (code) tested, I don't mind helping. I had a
Modicon PLC around but had to return it, M221. 
> Would you please be so kind and start a new thread about the problems
> you were mentioning? 
> 
Sure, let me poke at it for a bit.
> Are you planning on bringing your Modbus-RTU work back to the
> project? Cause that's been something there was quite a bit of
> discussion about and interest for.
> 
Yes, I volunteered to help Ben with it, I forked the repo (Modbus-RTU)
and cloned it which I am working with now.

> I think for protocols like EIP, KNX and BacNET there seems to be a
> wider range of interpretations in the Specs, and we have seen a
> number of "interpretation" by vendors that seem to differ from the
> specs. So it might be that for the one or the other device or vendor,
> we might have to come up with flavors, variants or modes in the
> drivers. However again, this is a bit problematic as we don't have
> the hardware. 
> 
I want to get the Rockwell Automation CIP protocol (EIP) sorted since I
will be more likely to use it around here in Allen-Bradley land. Again,
any particular needs here I don't mind helping where I can with.

> Auto-discovery is also something we have started working on ... I
> think the Go version is a bit more ahead regarding that, but for
> example PROFINET (WIP) already allows auto-detecting devices. Do you
> want to join in on working on this (Auto-discovery in general)?
> 
Yes.
> I think regarding your request to tweak the settings of the
> transport: Transports do have a list of supported options and we
> generally wanted to run the transports with sensible defaults
> (defaults provided by the corresponding driver) and make them
> overridable with options in the connection-string. So some of this
> tweaking should already be possible. However especially regarding
> serial transport options, I haven't got any hardware using any non-
> defaults, so difficult to test.
> 
Again, testing is something I can do for the above hardware I list.
Unfortunately, I haven't been as active with Siemens S7 products as I
would have liked since the use is low in my area. The S5 and Sinumerik
platforms were the ones I was familiar with, PLC and CNC systems. So I
am not as cozy with Siemens Canada as I was back then. Not sure any of
my old contacts would be around.

Stephen
> Chris
> 
> 
> 
> -----Original Message-----
> From: Stephen Snow <s40...@gmail.com> 
> Sent: Mittwoch, 19. Januar 2022 13:33
> To: dev@plc4x.apache.org; Łukasz Dywicki
> <lukasz.dywi...@connectorio.com>
> Subject: Re: [DISCUSS] Extend PlcDriver with "supportedTransports"?
> 
> Hello,
> I would like to just add to this conversation if I may.
> On Wed, 2022-01-19 at 11:00 +0000, Christofer Dutz wrote:
> > Well the problem with eagerly including transports is:
> 
> > For example, using Modbus ... most transports being used will
> > probably 
> > be onls TCP.
> Not entirely true, there is Modbus Ascii which is used over serial
> and is not limited in scope like RTU. Sometimes referred to as
> extended.
> > And with Modbus-RTU it should only work with Serial, but there are 
> > people using serial-to-network converters, so you also could use 
> > Modbus-RTU via TCP transport
> Yes, been there done that.
> > ... also, if we ever support passive-mode we would be adding raw- 
> > passive. I think initially I made the drivers explicitly depend on
> > the 
> > default transports and have people include the optional ones. I
> > think 
> > for the raw transports on some systems you needed to run the 
> > application as root or with privileged network access.
> > 
> So for this project, which is an API to talk to any PLC presumably, I
> think that the end use case does determine the extent to which
> discovery is desirable. In my use case(s) I am trying to make a
> viable product from, I am finding the driver inflexible in the
> regards to messaging. As an example, I can connect both via TCP and
> via Serial transport to the same PLC. After a bit of bashing, I was
> able to get a response via Modbus-RTU from a lone address in the PLC.
> But the physical serial connection was established and I could also
> build a message manually and just use the serial transport to
> send/receive it and works fine. I was getting netty.io complaints
> going through the PLC4X protocol. The TCP connection is EIP protocol
> and the PLC is a Rockwell Automation Micro820, so at this time I am
> going to dig into the EIP protocol bit to determine why the message
> is failing with it since the structure is what the PLC is expecting.
> I believe that there was some discussion of Allen-Bradley CIP
> protocol issues, I'm going to dig into that presently.
> > But admittedly this has been so many years ago .. I don't even know
> > if 
> > this is a problem today.
> > 
> > My reasoning on using "supported" is that these are the transports
> > we 
> > are aware of and explicitly support, if the user uses S7 with
> > Serial 
> > for example, that's not "supported" and if he has trouble with this
> > ... well I guess it's his problem ;-)
> > 
> So, I have worked as a Systems Integrator, a Solution Provider, and a
> machine builder (turn-key solutions) for a long time and have seen
> almost everything that was made for purpose 'A' being made to work
> for purpose 'B'. The one thing about PLC's is that they can be used
> for a broad range of tasks, though they are more specialized
> generally, but that is usually I/O count or motion capability. IMO,
> the driver(s) should work with whatever transport is available
> (within reason). I frequently am connected (out in the field) to one
> device on a network, using one driver, and talking to two or more
> devices on the network via pass-thru, which most OEM's like Siemens
> support, does PLC4X contemplate supporting such? From the POV of the
> user, I would like to connect to a e'net switch, and browse to
> connect, this is my current goal, discoverable PLC with automatic
> connection. 
> I understand my use case is likely very specific in that I am a sole
> proprietor and follow my customers needs while trying to look out for
> their future needs, so I am not always doing the latest and greatest,
> just what they require (and are willing to pay for). 
> 
> > So, what would you be proposing on returning? @Łukasz Dywicki ...
> > instead of returning "tcp" to return "Class<TcpTransport>" (or
> > however 
> > we do it)?
> > 
> I would return a transport object, ie the instance that was created.
> I need to be able to after connection change things like baud rate
> etc., or in the case of Modbus-RTU protocol, the timing of the
> communication instructions needs to be configurable and should be
> easily exposed with getter/setter methods. Also, from the POV of a
> serial transport, I need to be able to set the port mode in some
> cases (RS-232 or RS-485 or RS-
> 422) for whatever purpose, like talking on an RS-232/RS-485/RS-422
> network all over the serial port.
> 
> Stephen
> 
> > Chris
> > 
> > 
> > -----Original Message-----
> > From: Łukasz Dywicki <l...@code-house.org>
> > Sent: Mittwoch, 19. Januar 2022 11:47
> > To: dev@plc4x.apache.org
> > Subject: Re: [DISCUSS] Extend PlcDriver with "supportedTransports"?
> > 
> > I come over this issue yesterday, but on other end. While trying to
> > get
> > 0.10 running under OSGi I found that "wiring" if fine but whole
> > thing 
> > fails to work at runtime.
> > This boils down to several things, but Transport SPI lookup too. I 
> > agree that listing supported transports types (tcp/udp/serial/can)
> > is 
> > fine for start. On other hand it is unlikely we will ever get S7 
> > working over serial line so we could in theory declare that it
> > works 
> > only with TcpTransport. Later one is actually beneficiary, at least
> > for OSGi, cause it makes S7 driver classpath aware of TcpTransport 
> > requirement.
> > This was issue Etiane was facing back then while working with Camel
> > components to wire everything in.
> > 
> > Anyhow, I am fine with both, with some level of preference for
> > listing 
> > transports directly. If we scope dependencies properly end users
> > will 
> > get drivers working out of the box with very few entries in their 
> > build tool.
> > 
> > Best,
> > Łukasz
> > 
> > On 19.01.2022 10:44, Christofer Dutz wrote:
> > > Hi Cesar,
> > > 
> > > right now, I would only like to give back a list of strings that
> > > are 
> > > the codes of the supported transports.
> > > Perhaps we should extend the transports to give tooling more 
> > > assistance on how a given transport is to be configured.
> > > 
> > > Chris
> > > 
> > > 
> > > -----Original Message-----
> > > From: Cesar Garcia <cesar.gar...@ceos.com.ve>
> > > Sent: Sonntag, 9. Januar 2022 17:29
> > > To: Apache PLC4X <dev@plc4x.apache.org>
> > > Subject: Re: [DISCUSS] Extend PlcDriver with
> > > "supportedTransports"?
> > > 
> > > How are they?
> > > 
> > > Not only the transport, but also the data structures of the
> > > items.
> > > 
> > > This would allow the user to have a reference of what you can 
> > > request in the items.
> > > 
> > > Looking to the future, this would be a must for the OPC-UA
> > > server.
> > > 
> > > Kind regards,
> > > 
> > > El dom, 9 ene 2022 a las 6:10, Christofer Dutz
> > > (<christofer.d...@c-ware.de>)
> > > escribió:
> > > 
> > > > Hi all,
> > > > 
> > > > I know initially I built the Plc4X API to generally allow any
> > > > form 
> > > > of driver to use any form of transport.
> > > > However, this only would have worked in theory.
> > > > 
> > > > I think we should probably have every driver provide a list of 
> > > > supported transports.
> > > > This would also help make tool integration easier.
> > > > 
> > > > If we see that for example sometimes, we have ModbusRTU passed 
> > > > along TCP/UDP connections via serial-to-ethernet adapters, we
> > > > can 
> > > > definitely support that and if we come across a mode of
> > > > operation, 
> > > > that we haven't encountered, it should be easy to extend.
> > > > 
> > > > But this way we could ensure that we build the drivers in a way
> > > > that they know what to expect.
> > > > 
> > > > What do you think?
> > > > 
> > > 
> > > 
> > > --
> > > *CEOS Automatización, C.A.*
> > > *GALPON SERVICIO INDUSTRIALES Y NAVALES FA, C.A.,* *PISO 1,
> > > OFICINA 
> > > 2, AV. RAUL LEONI, SECTOR GUAMACHITO,*
> > > 
> > > *FRENTE A LA ASOCIACION DE GANADEROS,BARCELONA,EDO. ANZOATEGUI* 
> > > *Ing.
> > > César García*
> > > 
> > > *Cel: +58 414-760.98.95*
> > > 
> > > *Hotline Técnica SIEMENS: 0800 1005080*
> > > 
> > > *Email: support.aan.automat...@siemens.com
> > > <support.aan.automat...@siemens.com>*
> 

Reply via email to