The Productivity3000 gives you 7 communications ports right out of the box, and they all come
standard. They are not something you have to purchase as an extra add-on. Whether you’re
getting connected with the programming software, interfacing with a C-more HMI, expanding to
local or remote I/O bases, integrating GS drives, this CPU has you covered.
But, sometimes even that is not enough. For example, suppose you have a bar code scanner
at every decision point in an order fulfillment line that’s routing customer orders to picking
stations. And suppose all of those bar code scanners have serial RS232 outputs. Wouldn’t
it be great if you could just add serial ports as you need them?
The Productivity3000 Serial Communications Module or SCM allows you to do just that.
You can plug in up to 11 of these 4 port modules for up to 44 additional serial ports in a
single system. And configuring the serial ports is easy.
Step 1: Connect to Productivity3000 and go to Hardware configuration – hit the read
configuration button to autodiscover all the new SCM cards. If this button is dimmed out
like this one is, then the controller is in run mode, so I’ll flip the switch on the
controller to STOP mode. Now if we hit the button, and acknowledge that our system is
deferent from the default, then double click on the result, we see this base has a 550
processor, an input simulator and a SCM card. Step 2: Double click on the SCM to configure
its ports. We’ll use port 2 in this demo. Let’s give it a name we understand. We’re
going to be reading some ACII characters in this demo so let’s call this ASCIIReader
port2. Normally I would leave the protocol at Modbus, but for our demo we’re going
to be reading ASCII characters so let’s use the ASCII protocol so we can test it with
a simple terminal program. We’ll use no parity, 8 data bits 1 stop
bit and no handshaking. These are just all the usual options you would expect on a serial
port. Back here on the options tab we can use these Module Status TAGs to keep an eye
on things so let’s change these from the usual Group, Base, Slot, Point format to something
easier to read. We’re going to be reading ASCII characters in so let’s call this ASCII
Port 2 HeartBeatTimeout, Buffer Full, Port Ready. We’re not using the CTS so we’ll
leave that alone, but let’s change this to SCM2_Ready – it tells us the serial control
module is ready which is handy if you do a hot swap of the module. Since we are not using
the rest of these defaults, let’s get rid of them so they don’t clutter up our data
view. These guys right here allow us to select if
we want the system to halt when the card is removed or allow us to do a hot swap without
affecting the system. Let’s enable hot swap. That’s it; we setup the hardware and configured
the serial port. You just repeat that for all the other ports you want to use. Easy
And let’s add the remaining tags to the data view.
The red dot above the module reminds us that this module IS configured for hot swap.
Now you just use that port exactly like you would have used the CPU’s serial port. We
are going to do an ASCII example in this video so we’ll use the ASCII IN instruction. Again,
this is the exact same ASCII IN instruction that we have always had. The only difference
is we choose the new serial port instead of the CPU serial port. If you don’t see your
CPU Serial port here it’s because you haven’t set it up for ASCII …
So let’s do it … For this example we’re going to send characters from a terminal program
on a PC, so we want a random length string terminated by a carriage return. You would
want to use fixed length if you were using something like a barcode that has a fixed
number of characters. We do need to specify a max length so I’ll make that 80 characters.
The ASCII code for a return is 0D. I don’t want any timeouts, no byte swapping and we’ll
use the structure option for the tags so we only have to type one name.
Hit OK, Yes we do want to define all these tags we just created, but let’s make the
max string length the same as the 80 character max we specified in the dialog. And now that
we have created all of these tags, let’s go back into that instruction and add those
to our dataview. Finally, let’s add a control bit so we can
enable this instruction. Done. Let’s Transfer the project to the
Productivity3000 and see what happens. I’m using an open source terminal program
called TeraTerm to send ASCII characters to the Productivity 3000 via a USB to serial
converter cable. When I bring up that terminal program, I just tell it I want to do Serial
on the port the converter is connected to. I want to setup the serial port on the PC
to match the serial port we just setup on the Productivity3000. Here is the dialog from
the Productivity3000 and we see we need 19 two k baud, 8 bits, no parity, 1 stop bit
and no flow control. Perfect. I’m also going to tell the terminal to echo characters so
I can see what I am typing and make sure it sends a return at the end of each line since
that’s what we told the ASCII IN instruction to expect..
Here’s our data view and terminal side by side. Let’s add the control bit and use
it to enable the ASCII IN instruction. Hmm .. we see the module is ready, the port is
ready, but the ASCII in instruction is not active – why not? Well, we took the controller
out of RUN mode back when we auto-detected the hardware – right? Let’s flip that
switch back to RUN and sure enough now the ASCII in instruction tells us it is running.
Having all of these tags to debug things is awesome. These guys down here are just a different
way of displaying these guys right here – it’s the same information. I prefer to delete these
guys so now everything I need to know about the ASCII IN instruction is collapsible under
this. Let’s also delete these MST bits that we aren’t using.
Great. Let’s try it! If we send characters from the PC we should see them appear here
in the destination string when we hit return. And sure enough they do..
Now, just for a moment let’s pretend we have a fixed length string like one that might
come from a barcode scanner. To do that we just modify the ASCII IN instruction to tell
it to expect a fixed length string, we’ll use 10 characters for this example. Transfer
to the controller. Let’s clear the terminal screen to get rid
of this garbage. Now if we type 10 characters, we should see them appear in the destination
string when we hit that 10th character and sure enough we do.
A few notes: We already said you can have 11 of these serial
modules in system – that’s all 11 in a single 11 slot base or spread out amongst
remotes too – it’s all exactly the same. That gives you 44 additional serial ports
to use anywhere your system – remember the CPU has an RS232 and a RS-485 port built in
so that’s a total of 46 serial ports in a single system!
Serial port 1 on the SCM supplies 5 volts on what would be the CTS pin so now you can
connect a C-more micro directly to the port without an additional power supply. And, you
can create another 422 or 485 port by connecting the FA-ISOCON – that gives you an extra
485 port WITH a thousand volts of isolation! Ports 2,3 and 4 do have the CTS pin for handshaking
if you want it. All of these serial ports are FULL Duplex
ASCII ports that require no special configuration and they support ½ duplex too!
Port four can be used as a RS232 or RS485 port and if you are using RS485 you can add
a termination resistor simply by jumpering T to + right on the front panel terminal block.
The LEDs on the front panel are great for debugging issues. You can see at a glance
if there is activity on any of the lines. Keep in mind, these LEDs are connected directly
to the wire. These are not under software control. So if you see an LED blink, that
means the wire is hot. Of course this pin on port 1 is always on –that’s that 5Volts
port 1 provides for the c-More Micro. It’s also a good general purpose indicator – since
it turns off when the 5 volt bus is over loaded! If you have any questions about the Productivity3000
Serial Control Module, please don’t hesitate to call AutomationDirect’s award winning
technical support during regular business hours. They will be happy to help you out.
They don’t support the terminal program I used so don’t call them about that, but
do check out the forums – there are lots of folks there that love to share their years
of experience. Performance plus value. That’s Productivity.
From AutomationDirect.