Thanks Eric. I assumed that it would be a packet protocol. I just did a
packet radio link on a SAMD21. Those are many as you said.
I was more looking for HAL side of things or a python script that make
use of the RS-422 of the mesa. More the system integration side of
things I think.
------ Original Message ------
From: "Erik Christiansen" <dva...@internode.on.net>
To: emc-users@lists.sourceforge.net
Sent: 2017-09-11 14:40:15
Subject: Re: [Emc-users] Mesa RS-422 examples
TL;DR: Potted solutions are at the end.
On 11.09.17 11:44, Marius Liebenberg wrote:
Hi
I need to write a custom RS-422 protocol to control a plasma cutter.
I have
a mesa 7i44 (amongst other's ) on the system.
I have never used or seen any examples of how to communicate to
custom
hardware vie the RS-422 on the mesa cards. Is there anyone out there
that
has some examples that I can look at to get started please?
Or some advise will do as well thanks.
There will be some simple serial packet protocol or other out there in
the googleverse, but the fundamentals are:
+ It's a serial packet protocol, and whether it's RS485,RS422, or
RS232
on the physical layer doesn't amount to a hill of beans, except that
RS422 tells us that it's point-to-point, so destination addresses
aren't really needed.
+ Writing packet assembly code is simple - it's stacking bytes in a
buffer. The packet parser at the receiving end is a little bit more
work, which you might like to re-use on a subsequent project - so
maybe add source and destination address bytes to the packet, even
if
you just dump them on receipt, at this stage.
+ So a simple packet would look something like this sequence of bytes:
A recognisable header byte, i.e. a constant, e.g. 0x47 = 'G'
Destination address. 0 - 255
Source address. 0 - 255
Length If this is included, you have the option of variable
length packets. The count need only cover the
variable
payload.
Payload bytes.
...
How many do you need to tell a plasma cutter how to dance?
CRC or simple checksum byte.
The packet parser is a state machine which ignores anything received
until a header is seen, then advances statewise as packet bytes are
parsed. It's a really good idea to checksum each received packet, and
request a resend if it is corrupted. That's Transport Layer logic.
Packet queues at Tx and Rx ends are needed, unless backward ACK/NACK is
used to stop Tx if Rx isn't ready. If the plasma cutter can do only one
thing at the time, that might do for starters.
DIY can be weeks of work before it's reasonably capable and reliable,
so
let's now run "AVR embedded packet protocol" up the flagpole. Ah, the
second hit is: https://en.wikipedia.org/wiki/Cubesat_Space_Protocol
and it's good to go on 8 bit AVR and 32 bit ARM chips (whoops, is that
my bias showing? That's what I'd put on the Rx end.)
It's written in 'C', so nicely portable, and runs in a number of POSIX
environments, including FreeRTOS and Linux. So it's compatible with a
LinuxCNC host and an embedded slave. It might be worth a look.
Modbus will be suggested. I've not used it. It would be significant
overkill, but if there is free source to be had, then you'll not need
more than that to talk to a plasma cutter. Trying "modbus beaglebone
linux" gives enough hits to suggest that it would be feasible to drop a
beaglebone in on the Rx end, drop the code in, and maybe have it up in
an afternoon.
Erik
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users
---
This email has been checked for viruses by Avast antivirus software.
https://www.avast.com/antivirus
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users