On 1/11/2014 12:50 AM,
upsid...@downunder.com wrote:
> On Fri, 10 Jan 2014 15:30:28 -0700, Don Y<
th...@isnotme.com> wrote:
>> On 1/10/2014 12:53 PM, Aleksandar Kuktin wrote:
>>> On Thu, 09 Jan 2014 16:56:49 -0700, Don Y wrote:
>>> The protocol is supposed to support transfer of compiled G-code from the
>>> PC to a device (really a battery of devices), transfer of telemetry,
>>> configuration and perhaps a few other things I forgot to think of by now.
>>>
>>> Since its main purpose is transfer of G-code, the protocol is expected to
>>> be able to utilize fairly small packets, small enough that fragmentation
>>> is not expected to happen (60 octets should be enough).
>>
>> Remember, UDP's "eficiency" (if you want to call it that) comes at
>> a reasonably high cost!
>>
>> There are no guarantees that a given datagram will be delivered
>> (or received). The protocol that you develop *atop* UDP has
>> to notice when stuff "goes missing" (e.g., require an explicit
>> acknowledgement, sequence numbers, etc.)
>
> On traditional RS-4xx networks there is no such guarantees either, so
> request/response+timeout/retransmit protocols have been used for
> decades, why not use it on raw eth or UDP ?
You're making my point for me: the protocol that is layered atop
UDP has to include these provisions. (e.g., using TCP handles
much of this -- at an added expense).
>> There are no guarantees that datagram 1 will be received *before*
>> datagram 2. "Turn off plasma cutter" "Move left" can be received
>> as "Move left" "Turn off plasma cutter" (which might be "A Bad Thing"
>> if there is something located off to the left that doesn't like being
>> exposed to plasma! :> )
>
> Still using the traditional request/response model, you do not send
> the "Move left" before you receive the ack from "Turn off" command.
> Better yet, use the longer message available, put all the critical
> elements into a single transaction (eth/UDP frame). A frame could
> consist of "Move to X,Y", "Plasma on", "Move to A,B at speed z",
> "Plasma off". After this full sequence has been acknowledged, the
> master should not send a new burn sequence.
What if the message gets fragmented (by a device along the way)
and a fragment gets dropped?
What if the message is VERY long (i.e., won't even fit in a jumbo
frame -- assuming every device accepts jumbo frames) -- like a
software update, CNC "program", etc.?
Again: the protocol that is layered atop UDP has to include these
provisions.
>> There is no sense of a "connection" between the source and destination
>> beyond that of each *individual* datagram. Neither party is ever
>> aware if the other party is "still there". (add keepalives if this is
>> necessary)
>
> When the slave acknowledges the master request, this is easily
> handled.
There needs to be a "NoOp" request -- something that can be sent
that has no other effects besides exercising the link.
Again: the protocol that is layered atop UDP has to include these
provisions.
>> There is no mechanism to moderate traffic as it increases (and,
>> those increases can lead to more dropped/lost datagrams which
>> leads to more retransmission *requests*, which leads to more
>> traffic which leads to... keep in mind any other traffic on
>> your network that could worsen this -- or, be endangered by it!)
>
> The amount of traffic in a network controlling a real (mechanical)
> device, is limited by the mechanical movement etc.) of that device,
> not the network capacity.
You are assuming a single device is sitting on the network.
And, that all messages involve "control". E.g., any status
updates (polling) consume bandwidth as well. And, traffic
that fits into "none of the above" (e.g., firmware updates...
or, do you require the plant to be shut down when you do these?)
You're also assuming it's 10/100BaseTX from start to finish
with no lower bandwidth links along the way (or, virtual
networks sharing *physical* networks.
> In old coaxial based 10Base2/5 half duplex networks, that might have
> been an issue. For switch based (butt not hub based) 10xxxBaseT
> networks, this is not really an issue, since a typical industrial
> device do not need more than 10BaseT.
I designed an integrated "air handler" many years ago. It was easy
to saturate a 10Base2 network controlling/monitoring just *one*
such device. And, that's just "moving process air". I.e., you
don't just say "turn on" and "turn off". Instead, you are querying
sensors and controlling actuators to run the (sub)system in a
particular way.
It's foolish to think you're just going to tell a wire EDM machine:
"here's your program. make me five of these." without also
monitoring its progress, responding to alarms ("running low on wire"),
etc.
As with all resources, need grows to fit the resources available.
Hence the appeal of moving up to a fatter pipe.
>> Appliances other than switches can effectively block UDP connections.
>> If you ever intend to support a physically distributed domain
>> that exceeds what you can achieve using "maximum cable lengths"
>> (one of the drawbacks about moving away from "orange hose" and its
>> ilk was the drop in maximum cable length), you have to be careful
>> in considering what any *other* "interconnect appliances" do to
>> the traffic you intend to pass (and, if your protocol will be routed!)
>
> I would not be that foolish to do direct machine control over
You are again assuming the only use for the network is "direct machine
control". Do you want the service technician to have to drive across
town (or, to another state/province) to *interrogate* a failing
device? Do you want the engineering staff that have designed the
part to be machined to have to FedEx a USB drive with the program
for the wire EDM machine to the manufacturing site? Firmware updates
to require "on site" installation?
Or, do you want to develop yet another protocol for these activities
and a gateway *product* that ties the "secured" manufacturing network
to an external network?
[There's nothing wrong with exposing networks -- if you've taken
measures to *protect* them while exposed! Otherwise, what's the
value of a WAN?]
> unpredictable nets such as the Internet or even less over some
> wireless connections, such as WLANs, microwave or satellite links. All
> the security issues must be handled with wired connection and in some
> cases with certified LAN systems.
>
>> [It's surprising how *short* "100m" is when it comes to cable lengths!
>> Esp in a manufacturing setting where you might have to go *up* a
>> considerable way -- and, leave a suitable service loop -- before you
>> can even begin to go "over"! And, line-of-sight cable routing may be
>> impractical. For example, here (residential), the *average* length of
>> a network cable is close to 70 feet -- despite the fact that the
>> (2D) diagonal of the house is just about that same length *and* all
>> the drops are centrally terminated!]
>
> 100 m is the distance for a 10xBaseT twisted pair cable limit, putting
> switches in between will solve that.
Sure! Put a switch up in the metal rafters 20 ft above the
manufacturing floor :> I've a friend who owns a *small* machine shop
(mostly traditional Bridgeports, etc. but two or three wire EDM's).
I suspect he would be hard pressed to cover the shop floor from a
single switch -- probably 20m just to get up to the rafters and
back down again.
> For real heavy industry copper
> wiring is a no no issue and you have to use fibers anyway, with single
> mode cable fibers with over 30 km range without optical repeaters.
Gee, a moment ago we were talking about CAN... now suddenly we're
running optical fibre...
>> When someone later decides it should be a piece of cake for your
>> "engineering office" to directly converse with your controllers located
>> in the "manufacturing facility", you'll find yourself explaining
>> why that's not easily accomplished. "Why not? I can talk to
>> Google's servers in another *state*/country... (damn consultants
>> always trying to charge extra for stuff they should have done in
>> the first place!)"
>
> Isn't that a good thing that you can deny access from the outside
> world to a critical controller ?
If the technology *supports* remote communication, you can *still*
"deny access from the outside world to a critical controller"...
by CUTTING THE CABLE in a physical or virtual sense. OTOH, if
the technology *can't* get beyond your four walls, you can't just
"stretch" the cable!
> If there is a specific need to let a qualified person from a remote
> site access the device directly, build a secured VPN connection to the
> PC controlling the devices and use all required firewall etc. methods
> to restrict the access.
Another product.
What if the remote site is elsewhere on the "campus"? Or, just on the
other end of the building? E.g., most factories that I've been in
have an "office space" at one end of the building with the factory
floor "out back".
E.g., one of the places I worked had all the engineering offices up
front -- and the "factory" hiding behind a single door at the back
of the office. Other buildings were within a mile of the main
offices (most buildings were entire city blocks).
The (old) Burr Brown campus, here, (now TI) is a similar layout -- you'd
need a motorized cart to get around the facility but I'm sure they
wouldn't want to have to use sneakernet to move files/data to/from
the factory floor.