Live demo of configuring and using the Productivity3000 Serial Control Module (SCM).
Software Required, at least: 220.127.116.11
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 Productivty3000. Here is the dialog from the Porductivity3000 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 Productivty3000 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.