Hide Transcript
View Transcript
Using the Do-more to talk to an EtherNet/IP
encoder like this one is easy. It really only has one class, one object in
that class and the usual services. There is a table of class attributes, but
it only support attribute #1 – the rev number. How do I know all of that? It’s in this manual I found on-line. Looks like Appendix B has the Common Industrial
Protocol Object definitions – which is what EtherNet/IP uses - so we scroll down to that
and here is everything we need. Here are the services that are supported – all
the usual suspects. Here is where it tells me the only Class Attribute
supported is #1. They define all of their units here – that
will be handy in a minute. And here is the one EtherNet/IP position sensor
object and all of its attributes. Looks like we can ask it for the total number
of attributes, a list of which attributes are supported – notice they go from 1 to
2 then to 10, 11, 12 etc. so not all attributes are used here. We can get the current position and the type
of device; specify the counting direction, etc. There are lots of things we can do via EtherNet/IP
with an encoder. And remember – ALL Ethernet/IP encoders
use this same table of attributes, so code you write for this encoder will work on any
vendors EtherNet/IP encoder that supports these same attributes. And that’s one of the main advantages of
using EtherNet/IP – code portability and vendor independence. So let’s do an example or two. We have a Do-more at this IP Address going
into a Stride Ethernet switch, which goes to the EtherNet/IP encoder at this IP address. As always, we start with the configuration. EtherNet/IP doesn’t affect the CPU, the
I/O or the Module configuration. It does create a new device. And while we could use this built in EtherNet/IP
device, it is much better to create a separate new device for each piece of EtherNet/IP hardware. Otherwise one device will have to manage multiple
TCP/IP connections which can slow things down. Fortunately, it’s easy to create a new device. Click on NEW, select the EtherNet/IP Explicit
Client, Give it a name – we’ll call it “AMCI_Encoder.” And we’re done. That’s all there is to creating an EtherNet/IP
device. Now we just drag an EtherNet/IP explicit message
instruction into our code and fill in the blanks. Select our new AMCI_Encoder Device. Enter the encoder’s IP Address. The default port is fine. This device only has one class and Appendix
B tells us its Class 23 hex, so that goes here. There’s only one table so that’s going
ot be instance number one. And now we just pick which parameter – or
‘attribute’ – we want – how about the current position, which is attribute 0A
hex or 10 decimal. And that goes here. We’ll use these for our status bits and
D1 for the result and D2 for the number of bytes received. The value is a DINT which the appendix tells
us is 32 bits or 4-bytes of memory, so we put that here. That’s it. Let’s add a contact so we can activate this
instruction. Accept everything; write it out to the do-more. Add the contact and the result memory locations
to the Data View. Make sure the PLC is running, and toggle the
contact. Sure enough, the instruction was successful,
we got all 4 of the expected bytes and this is the value we got. I’ll rotate the encoder shaft and toggle
another read. And it changes. Perfect. Let’s add the ability to preset the encoder
value so we can set the encoders initial output to whatever we want. It’s very similar to what we just did, so
we’ll copy that and paste it here. Looks like the preset is attribute 19 – that
goes here - and we wat to set the attribute this time. We’ll use these for our status bits and
we’ll retrieve the present value from D0, which is 4 bytes long, so that’s fine. Perfect. Let’s toggle that on C101. Accept all; write it out to the Do-more. Let’s add our preset to the Dataview, along
with its control bit. Make sure we are running, rotate the encoder
a little and read the current value of the encoder. Now let’s set our preset at 100 and toggle
its control bit to write it to the encoder. Now toggle the current value bit and its right
where we expect it to be. And that’s all there is to talking to an
encoder – any EtherNet/IP enabled encoder – from the Do-more. Just pick the attribute you want from the
table in the manual, and the service you want and your in business. If you have any questions, please contact
AutomationDirect’s FREE award winning tech support during regular business hours – they
will be happy to help you with any AutomationDirect parts. The AMCI encoder isn’t an AutomationDirect
part so please don’t and ask them about that, but you can ask folks on the forums
– they love to share their years of experience! Just don’t post any questions directed at
AutomationDirect’s support staff there, they don’t monitor the forums on a regular
basis. Spend Less, Do More. With AutomationDrect.