Episode Transcript
Available transcripts are automatically generated. Complete accuracy is not guaranteed.
(00:00):
Welcome back to The Automation Podcast, the world's
number 1 industrial automation product and technology show.
Thanks to you,
our audience of highly skilled automation professionals. Thank
you for being a member of our audience,
and thank you for tuning back in this
week. Now for those new to the show,
my name is Sean Tierney of Insights and
Automation.
And each week, I invite a new vendor
(00:22):
to come on the show to tell us
about their products and technologies. And during their
presentation,
I will play the role of the audience
asking questions I think you guys may have.
Now given that a quarter of you out
there or more actually only listen to the,
audio, you don't actually watch the video, I'll
also try to call attention to any details
in the visuals
(00:42):
that I think you folks may wanna know
about. Now with that said, I wanna welcome
Quentin back to the show
for a, I actually reached out to Softing
to ask him to, talk about this product
line because they just expanded it, and I
thought this is a great time to get
the the, the audience, you know, up to
speed on this line. I think the last
(01:03):
time we had you on, it was OPC.
Is that correct, Quintin? I believe that is
correct. Yes. Looking at some of our OPC
UA products.
And I think that was a phenomenal demo.
If you guys have missed that you know,
the one thing about their OPC server
is that, it has, like, a I think
it's a 72 hour demo mode.
So if you need to do a test
overnight,
(01:24):
it's like the only OPC server you could
actually test overnight before you buy a license.
It did I have that correct?
Yeah. That's exactly right. So it'll run for
72 hours, and then it'll shut down, but
you can also just restart that again to
run another
72 hours. So it is really useful for
validating,
your application before you actually purchase. So I
(01:46):
highly recommend that if you're interested in OPC.
It's at least something to play with or
get your feet wet and make sure it
works for you before you actually put any
money down.
Yeah. And that was an excellent,
really just an excellent,
demo.
I'm actually gonna start including it in the,
in the courses because 72 hours I mean,
most people when they sit down to do
(02:07):
it, they're maybe there 3, 4 hours. So,
you know, that'll be long enough for doing
any type of demo work and then learning
your product. But you know what? I'm way
off track here. Before we jump into the
product we're gonna talk about today or the
line of products we're gonna talk about today,
Quentin, just in case somebody did not see
the last episode, could you just take a
minute and reintroduce yourself to the audience?
Sure. My name is Quentin Lowry,
(02:28):
in business development and support for Softink, specifically
for our industrial automation products.
I'm based out of Knoxville, Tennessee.
So I have an engineering degree from the
University of Tennessee. I've been with Softink for
6 years now. Oh, that's pretty awesome. I
love going to the Smoky Mountains to vacation,
so someday I'm gonna have to come by
(02:49):
and see you guys. But
now
the presentation you have up, and you may
even do a demo for us, this is
about the team manager's series of products.
There was recently an extension to this product
line, which I thought was a great time
since it's been extended
to to get you on to talk about
it. So let me just turn it right
back to you, and please just jump right
into your product presentation.
(03:10):
But before we jump in, I wanna thank
the automation school.com for sponsoring this episode of
the show. That's where you'll find all of
my online courses on Allen Bradley and Siemens
PLCs and HMIs.
So if you know anybody who needs to
get up to speed on those products, please
mention the automation school.com to them. And now
let's jump back into the show. Alright. Thank
(03:31):
you, Sean.
Today, we're gonna talk about our team manager,
as Sean said.
We've had
a form of the team manager for
many years now. It's always been in a
Rockwell ControlLogix
chassis, but just recently, we added the IPC
version, so a DIN rail mount standalone version
that you can plug in. What's nice about
(03:52):
that is that you don't have to have
a chassis, a Rockwell chassis,
and it also supports Siemens and Modbus as
well as Rockwell and Ethernet IP.
So there are 3 variants of that. There's
a ControlLogix version, a CompactLogix
version, and an IPC version.
I'm gonna give a short PowerPoint and go
an overview of of the module line and
(04:13):
its capabilities
and then jump into a demo.
So we're just gonna talk about briefly
what people are using this module for, kinda
how it's different being a hardware solution and
not a software solution,
and an overview of what it's like to
set up, and then actually go into the
demo and show you how that works.
(04:34):
So, traditionally, the modules
was designed to do track and trace for
the automotive industry. I was talking between the
PLC
and a SQL database. So we have a
wide variety
of database connectivity.
Recently, we added connectivity to the cloud. And
so today, I will show you talking to
a database and to the cloud, AWS IoT.
(04:57):
So we support Microsoft SQL, Oracle, MySQL,
Postgres,
most any database that you can think of
of the the common ones.
And as well, the way we communicate to
the cloud providers is using MQTT.
So think of AWS IoT or Azure IoT.
Also, any stand alone MQTT broker, we have
(05:19):
customers using a wide variety of those as
well. But before we get into that, I
wanted to thank those of you who signed
up in our new membership program either on
YouTube or at the automation blog dot com.
In appreciation of your support, you get exclusive
access to the videos
of episodes that are not sponsored by the
vendor.
Now to learn more about our membership program,
(05:40):
which is only $10 a month,
please visit the automation block.comforward/memberships.
And with that, let's go ahead and jump
back into this week's episode.
Have customers using it in all kinds of
different applications? Like I said, its roots are
in track and trace,
but think about anything where you wanna store
or log data. If it's pharmaceutical,
(06:01):
food and bev, anything where that data is
critical, you can't lose it,
whether it be regulated
or
maybe if for automotive, you have a recall
or something like that, you need to look
up
the part numbers that are affected or the
serial numbers that are affected. Also have customers
using it
just to automate things.
(06:23):
For instance, we have
a customer who
they were using a clipboard,
believe it or not, still out there.
But a truck would come in, get weighed,
get filled up with product, and on the
way back out, it'd get weighed again, and
they know how much to charge
that particular customer.
They set it up to where all that's
(06:43):
automated with a badge scanner and the scale
is tied to a PLC. So when customer
comes on, they send the record to the
database. When they exit,
they update that record with the final weight,
and then it's all automated from that point
as far as the billing, and it's associated
by the badge number that that person
used the scan in. So from us, I
(07:04):
don't think there's a
particular application or anything where this is just
a specific use case. It's anything that you're
trying to get data back and forth between
your PLC and whether it be a database
or a cloud provider, MQTT
broker.
Seen lots of different applications and use cases.
I will say the fact that it is
(07:25):
a hardware module and that it's in rack
on the Rockwell versions. And with the IPC,
it has it as well. It's just done
over Ethernet.
If we lose connection to that broker or
a cloud provider or the database,
we have built in store and forward in
the module.
We also give status and feedback to the
PLC via a handshake tag to let you
(07:47):
know if that connection is there, if the
transaction was successful, or if we have it
in store and forward.
So you get a lot of
feedback to the PLC directly live to know
if your data is being processed appropriately
or if there's been any issues.
And if there are issues, if you have
storm forward turned on, there's several gigs worth
(08:09):
built into the module
to hold and buffer that data so you
don't have downtime.
So I think that's kind of a point
where the module has a real use case
versus
a software
use case.
Yeah. And I think, you know, does that
does that dependability
of having
your device take the data from the POC
(08:30):
and send it and put it into the
database to do that transaction
where that all can do be done on
a PC. Right? That all can be done
with software.
But like you just mentioned, all those features
like the store and forward
and, you know, you know it's there. You
don't have to worry if somebody turns out
the PLC,
in the PC that was doing this, you
would have, you know, you would have no
(08:50):
data. So there's that hardened,
you know, piece that it's an industrial product
sitting in the,
typically in the electrical enclosure.
It's taken care of getting the PLC data
and queuing it and then getting it into
the database,
and it's hardware based, not PC based. So
let me turn it back to you. No.
You're exactly right, and thanks for jumping in
(09:13):
there. That's that's exactly the use case. So
this module is a a purpose built device.
The only thing that it does is move
data back and forth. With that being said,
it's it's designed like a PLC, so
there's no OS to manage like you would
have with a PC or something like that
running software. You don't have to worry about
applying
(09:33):
updates getting applied to an OS that may
break something or
even just the lifetime of PCs now seem
don't like, they don't last as long. We
have customers that have modules out in the
field that are 15 years old,
and still working.
So
it it's kind of, like you said, the
robustness of the device, the way that it's
(09:54):
designed to be functioning like a PLC,
you you get it in, make sure it's
set up to do what you want, and
then it really is set it and forget
it. I mean, I get calls from people
who know that the module's there, but they
don't know how it works. So you're kinda
training people again or sending in the manuals
and documents from whoever had installed it,
(10:15):
is no longer with the company or retired.
So
that's some of the benefits and use cases
of the module is that it is
an appliance. You get it in,
get it running. It's an embedded device. You
don't have to worry about
security updates or anything like that. It's locked
down. There's no ports open on the module.
(10:36):
The only way to configure it is with
our software, which I'm gonna show in the
in the demo.
The only ports that get opened are based
off what you're trying to connect to. So
if I open a port to talk to
SQL or anything like that, and you can't
just nobody can log into it and do
anything unless they have the username and password
and for
(10:57):
our UI to connect to it. They would
need that as well.
So we also try to make the user
interface super simple and easy for people to
configure.
So we essentially point to the PLC via
an IP address
and browse its tags. On the database side,
we log in with the credentials and look
at the tables,
(11:18):
and then you simply drag and drop. So
I'm gonna say, hey. I want this tag
connected to this part of the table. Tell
it under what conditions you want that transaction
to execute and set it to run. So
we'll go through that, but we do try
to keep it as simple as possible.
Typically, automation guys may be not as familiar
with the SQL database or connecting into the
(11:40):
cloud, and we try to make some of
that as easy as possible.
Yeah. And I think that's that's a huge
use case right there because, you know, if
you're a busy automation guy and you don't
have time to debug SQL or transactions, it's
like you buy a product, you just drag
and drop, and it's connected,
and I think that's so many products in
our space.
(12:00):
Yes. People can make an HMI out of
Visual Basic or Visual Studio,
but nobody does it because it's so time
intensive. It's just so much faster to put
in an HMI with drag and drop components,
and that's what you're doing here with this
product
for getting data from the POC to a
database.
So you don't have to, you know, become
a database expert. You can just deploy this
(12:20):
using the software you're gonna show, and it's
it's done. Job completed. Move on to the
next one. Back to you, Quintin. No. That's
exactly right. We try to keep it as
easy and as clean as possible.
And if anybody needs any help, it's normally,
hey. Here's a link to this document to
do that, or here's a video, or we'll
jump on a Teams or something like that
and resolve it fairly quickly. So it is
(12:43):
pretty simple
of a device. Try to make everybody's life
as easy as possible.
I'll use this slide to talk about the
differences between the 3 different versions. So the
CompactLogix
T Manager,
is it is in the 1769
form factor. It will talk to the 5069
CompactLogix
PLCs as well. It only talks to CompactLogix
(13:06):
PLC, so that's a little bit different from
our ControlLogix version.
And I'm just using this to highlight the
differences between them.
So it it communicates via Ethernet IP. It'll
talk to up to 3 CompactLogix
PLCs.
The IPC version can talk to CompactLogix,
ControlLogix,
Siemens, Modbus
(13:28):
PLCs.
It's limited to 3 PLCs as well,
but it can talk to all those,
and you it's not just one at a
time. It's however you wanna configure it. Hey,
everyone. I just wanted to jump in here
and pay some bills. Thank you, first of
all, for listening to this episode. And while
today's vendor wasn't able to sponsor this episode,
I still wanted to invest the time to
(13:49):
bring it to you because I think you're
like me. You like to learn about new
products and technologies.
So with all that said, I'd like to
ask you to consider becoming a member
for just $10 a month, either on YouTube
or at the automation blog dot com to
help me offset the cost of producing these
episodes each week. In exchange for your membership,
you will receive member only perks, including access
(14:10):
to my daily news show and ad free
editions of every unsponsored episode
of this show.
With that said, thanks again for tuning in
this week, and now we'll return you to
this week's episode.
The ControlLogix has all that capability as well,
but it's got a little bit more robustness
in it, and it can talk to
(14:30):
16 controllers, even some of the older
PLC. So if you have a a bridge
card in your rack that's going out to
some of your older things like slicks or
PLC fives, it can actually still talk to
those as long as it has a network
path.
I say all that just to kinda
give the differentiation
between the 3. They're all configured using the
(14:52):
same UI.
They all have the same capabilities as far
as the calls they make on the SQL
database or what they're publishing,
to the cloud.
So those really are just the the differences.
It's the amount of PLCs and the type
of PLCs that they can connect to.
They all can talk to a wide variety
of databases or cloud providers, like I said.
(15:16):
They all have the same storm forward, and
they all have 2 Ethernet ports. I will
cover that. There's the reason there's 2 Ethernet
ports is typically your database may not be
located on the same
network as your plant. Right? Your automation devices
are typically on a different network
than your business system. They don't have to
be.
If you have everything on one network, then
(15:37):
you only need to use one port.
But if they are separate, it just gives
you an easy way to
to link the database portion to that and
the plant side to the other one. There's
no routing between those from a security
concern or anything like that. They are electrically
isolated from each other, but I do wanna
point that out. That's why there's 2 Ethernet
(15:57):
ports on there.
And so that's just a real rough overview
of the module,
or the modules,
I should say.
I'm also right now, I'm showing a slide.
So
in my office here, I have a ControlLogix
rack. I have a ControlLogix t manager in
it. I'm gonna talk across the backplane to
(16:18):
a l seven.
We'll gather data from it, send it to
the cloud. We'll also send it to the
database.
There's a blue and a yellow line for
those watching. That's just designating the 2 networks.
So in my office here isolated
to just a couple devices,
I have my PLC, my team manager,
(16:38):
a CompactLogix PLC, and my SQL database.
It's not on the Office network. For me
to get out to AWS to send that
data to the cloud, I have to get
on the Office network. So I'm using that
second port to tie into the Office
and get out onto the web to talk
to AWS. So if you were watching the
video, you would see that,
(17:00):
but that is
the setup. So in my office, I have
all my local stuff
just like it would be isolated on the
plant 4. I have my PLCs, my Studio
5000, and a SQL database.
My second port on my team manager is
going out to the cloud to talk to
it, so I don't want my PLCs and
stuff like that on that network. So that's
(17:20):
why they're isolated from it. Now that brings
up a good point, and and I didn't
see this earlier. It may have been in
your slides, and I didn't see it. But
we've just as you know, we just talked
about how many devices each module can can
work with,
PLCs. Right?
Is there a number of databases
and a tag limit per module?
(17:40):
That's a that's a good point. I should
have covered that. There's not a tag limit.
There is a transaction limit.
So there's 25 transactions per module, but there's
not a tag limit that you put in
each transaction.
So that is something to be aware of.
There's not a database
connectivity
limit either. I mean, we've got people that
(18:01):
talk to, I guess, the I I normally
don't see a ton of that, but we
do have customers who talk to 3 or
4 or 5 different databases
at the same time with 1 module.
So that is a little bit different of
other things that you may have seen out
there. So I have customers. I guess that's
to be clear as well. The module can
do inserts, which is just writing data to
(18:23):
a database.
It can do updates, which is going in,
not creating a new record, but just changing
values
for a record that's already in the database.
Selecting is,
calling a select is when it goes into
the database and pulls data back out of
it and writes it down to the PLC.
And then stored procedures can be anything on
(18:43):
the database. Think of that as a function
or a program that somebody's written that resides
in SQL. From the modules perspective, it just
has inputs and outputs. So we send data
in. It responds and sends data out. We
don't care what happens in between. We just
care about, hey, what are those variable types?
What does that data look like that's coming
back out? And we write that back down
(19:05):
to the PLC
as well. I say all that to say,
I have customers who do recipe management with
a module. It's a really
popular application, I guess. So if you think
about you have a line that
maybe it's running a CNC machine or some
type of robot that's doing different parts,
instead of storing the parameters for the different
(19:27):
part numbers and the different variables all in
the PLC, they'll store them in the database.
So the operator comes on,
types in a specific part number.
The module goes to the database, looks up
that part number, and pulls down its parameters.
I have a particular use case for a
customer where they actually pull down
(19:48):
roughly 8,000
data points and write that to tags and
the PLCs. Now they're only using one transaction
to do that,
but back to your point about tag limit,
it's kind
of unique in that there is a transaction
limit, but when we're actually
pulling data back down,
we don't have a tag limit on
on reading or writing to the database. So
(20:10):
each application's a little bit different. If if
anybody has an idea, they're like, hey. Would
this module be a good fit for this
particular thing that we're trying to do? Feel
free to reach out to us, and we
can talk about how it would be done
or set up a demo and actually walk
through that as well. Yeah. It reminds me
a lot of of transaction manager, Rascal, back
(20:30):
from, the late nineties, early 2000. And, you
know, if if you had,
you know, 3 different sets of, let's just
call them data logs, that you want to
store in the database that you know, with
different rates of storing data and different tags,
those would be 3 different transactions.
That's correct.
Yeah. So you gotta keep in mind like
that. Now,
(20:52):
fetching data out of a database is so
extremely helpful because a lot of times your
production data is in the database,
and people really struggle with that. And it's
not as hard as it sounds.
You you tell it, you know, a lot
I remember, an ice cream company. They I
worked with them, and they had a they
they only all they had was the barcode
number that they were running. But they wanted
(21:13):
to display on the HMI all the stuff
about this. They, you know, the recipe and
the the name, you know, because the the
the marketing names these days change on different
flavors a lot, you know. And so,
by connecting that with the with the, the
database that was managed in the front office,
it just opened up you know, opened the
world to them on the plant floor. And
so, you know, 25 is actually quite a
(21:35):
bit. And I, you know, I wanna say
one other thing too. I don't think this
slide where we're seeing as Microsoft SQL Server
on the plant floor and AWS, some cloud,
you know, Azure or some cloud, based platform
or front office based platform, I don't think
this is I I think this is actually
probably more typical because, you know, especially in
my courses when I'm teaching factory talk Vue,
I'm showing people, hey. You got a database
(21:56):
here. You can use it for all kinds
of stuff. And Rockwell's done all kinds of
has all kinds of objects that can read
database tables for you. And so a lot
of times, yeah, you wanna collect the data
from these different POCs and put them in
one database that may be on your plant
floor,
but you also wanna get data to the
front office. And a lot of times, they
want different data than you want. Right? You're
(22:16):
more concerned about keeping the line running. They're
probably more concerned about what's running. You know,
that's where you do your update. Right?
And then your historical, like, hey, what was
you you know, how much scrap do we
have? How much how many good products do
we have? How long was it per product?
You know, OEE kind of stuff. Right? And
so,
yeah, just all these thoughts are coming flooding
through. But let me turn it back to
(22:37):
you, Quintin.
No. That's spot on. Like I said, the
the application use cases are limitless, really.
If you have data and you wanna store
it somewhere,
PLCs are used everywhere. We like,
connecting
it from the PLC to the database,
we don't have a particular application, so we
(22:57):
have it in all different types of use
cases, but you're spot on. A lot of
the times, it is using OEE.
And sometimes it's, hey. We like I said,
we're we're just trying to automate our our
process. We're not saving it off for the
business side or anything like that. And other
times it is. It's like, hey. Our orders
come in online now. They're written to this
database.
We wanna we want something that can go
(23:19):
up there, look at those, write it back
down to the PLC, and then we can
run the line. Right? So
it just depends. Everybody's got their own unique
application.
So with that being said, I'll jump over
into the demo now.
Hey, guys. Sean jumping back in here to
let you know about one of the new
services I'm offering from my new downtown office.
(23:41):
In addition to custom in person training and
virtual training,
I'm also now offering 1 on 1 mentoring.
This is a service that grew out of
my online courses at theautomationschool.com
driven by students who completed my courses, were
competent in their jobs, but then they'd run
into difficult or confusing applications,
and they wanted to hire me to sit
(24:02):
with them virtually and review their projects, review
their code, and ask questions.
You know, I gotta tell you, it's gone
really well with the students I've done this
with, and so now I'm releasing it to
the public. If you wanna know more, please
use the contact link at either the automation
school.comortheautomationblog.com.
Now another service I'm offering is the result
of vendors and users coming to me and
(24:23):
saying, Sean, you got all that equipment in
your studio. Could you test this for me?
Or could you set up my computer and
make sure it communicates to all those devices?
And so I'm also offering
PC configuration
and application testing right here in my downtown
office.
So if you're interested in that, you can
use the same two contact links to get
in touch with me. And with that, that's
(24:44):
all I have right now. Let's return to
this week's episode of the automation podcast.
So this is our UI. It's pretty simple.
You only really use it when you're configuring
the module, setting it up. You set it
to run, and then you log out. Right?
The module, it's all contained within the hardware
itself.
To log in to the module, you simply
input either one of the IP addresses of
(25:05):
the module,
hit connect after having the username and password
in there. You have a basic status page.
You can see how hard the CPU is
working.
Right here, you can see there's roughly 10
gigs worth of storm for that we could
utilize.
And the RAM, there's 4 gigs of it.
If you wanna tie this module into an
AOP on your,
(25:28):
Logix controller, you can definitely set that up.
I don't have this set up right now.
We're gonna set this module up, but do
be aware that you can do that. You
get some status and feedback
to the PLC. We won't go into the
details of all of that, but it's definitely
something that you can set up. You don't
have to. The way the module communicates is
similar to an HMI.
(25:49):
It's class 3 SIP communication
on the Rockwell side,
So it is something to be aware of.
I'll jump through some of the settings, but
I I don't wanna
bore everybody with all the settings. Right? I'll
touch some of the highlight things, and then
we'll actually jump into some transactions
and wrap it up. So,
obviously,
(26:10):
a couple things that you'd play with are
the Ethernet ports. It's pretty basic setup, DHCP
or static. If you're using any DNS servers
or gateways, you can configure that here. This
is where you configure the 2 Ethernet ports
for those that aren't
watching the video. If you're listening, it's your
standard
what it's your standard configuration for Ethernet ports.
(26:31):
Right below that, there's another button for network
diagnostics
that just allows you to do pings and
trace routes from the hardware module itself.
So to be clear, it's not from this
PC that's running the UI, but it actually
takes the path that the module's gonna take.
So that's useful.
Something else that I recommend everybody set up
is having a time source for the module.
(26:54):
So think about if power's out for a
long time and the battery
for the real time clock was to run
out, how does it sync its time back
up? So we can sync,
with a PLC that we're
connected to, or we can sync to an
NTP server that's on the network. So if
you have a network time protocol on the
network, a lot of times customers
(27:15):
will have their SQL server be an NTP
server as well. It's just the service you
run on that machine, and so you can
get the module syncing up with it.
If you're going out to the cloud and
you have Internet access, then there's a lot
of free ones. There's an ntp.org.
You could just point it to one of
those, and it's gonna
sync its time with that.
(27:38):
Licensing, you shouldn't have to worry about it,
but you like you order a module, you
tell it what database you want licensed with.
If you wanted to have multiple database types,
that's when you'd bump into an additional licensing.
So it's something to be aware of.
We do have updates come out occasionally.
They're free download
(27:59):
and install. It's pretty simple. Just point it
to the file, hit update, and the module
takes over on its own,
And it'll come back up in 5 to
10 minutes, and you can reconnect to it
and play again.
You can create different usernames and passwords as
well for the module if you wanted to
restrict
access to certain users
(28:20):
where they can only come in and view
things but can't alter or change anything, you
can set that up.
Most of the time, that's used with our
OEMs and integrators
when they're working together within customers and they're
trying to divvy out different
roles. So there's not only the viewing role,
but you can say, hey. This person can
only touch the IT net or the database
(28:40):
side of stuff.
This person can only play with the PLC
side of stuff. So there's a lot of
different roles there as well.
But for what everybody cares about is the
projects.
So
I don't have any configured right now. I'm
gonna click new.
We'll just type in demo as the project
name. I'll double click on it, and it's
gonna open up the project editor,
(29:02):
and it put it in my separate screen
over here. So I'll drag it over. You
can see up here is that 25 transaction
limit.
So what we're gonna do is we'll connect
to a controller,
we'll connect to a database, to the cloud,
and then we'll set up transactions.
So for the controller,
I already have some defined, but let me
(29:22):
delete that. It's really easy.
You simply input the IP address. So I
right click under whether it's Ethernet IP, Modbus,
or Siemens,
connect to a new module,
pick the type.
We're gonna say 192168.1.103
for my CompactLogix.
I hit okay.
(29:42):
It turns green. That just means, hey, we
have successful connection.
I right click on it, say open tag
list, and there's the control arm program tags.
We support UDTs in arrays.
It's really easy.
So that component's done. For the one that's
in rack, it's really easy as well. You
just right click on it and say configure
(30:03):
selected module and give it a name.
It'll it'll turn green as well.
To connect to the database, you say new
database application.
Pick what you're trying to connect to. If
so in my case, Microsoft SQL.
(30:24):
Input the IP address or host name, the
database name, a username, and password.
I hit validate connection. That just is like
a check. Hey. Can I log into that
database with these credentials?
And it says it was successful.
From there, the way we look at the
(30:44):
database
to know what the table structure is and
the column names, we hit enumerate,
and we see what access we have with
that particular user. That's something I bump into
occasionally when we are talking to a a
database that's on the business side of the
house. It's like being used for a lot
of different things. Maybe it's financials or customer
(31:06):
information, stuff like that,
is they're worried about the module having access
to things.
You can set up a user on SQL
that is limited to whatever you want it
to have access to. So if it's a
particular table or a particular stored procedure,
they can set that up. And then when
the module logs in, that's all that it
(31:26):
has access to. So it is something to
be clear.
And that's something you want because you don't
wanna be blamed for writing over somebody else's
tables
or data. Right. So you said, give me
my own user. I only want access to
my table.
Please don't give me access to anybody else's.
Yep. And along
that that same,
(31:48):
narrative, the module cannot do deletes directly. So
there's we said inserts, updates, selects, and stored
procedures.
It was intentionally left out for people to
be able to do deletes directly. Now if
somebody needed to do a delete, they could
create a stored procedure that does a delete.
But it's funny because of what you just
(32:09):
said. Hey. We're trying to
typically, like I said, this is for the
automation engineer to set up.
The database guy can set up a a
storage procedure to do deletes if that's what
they wanna do, but
it it is funny that that you're talking
about that because it's kinda in the same
path that they don't want you to be
(32:30):
messing stuff up, so to speak, or something
like that or having an accident
on deleting something you you're not supposed to.
But with that being said, here's the tables,
views, and stored procedures that we have access
to with this user. I'll just click select
all so that I can play with all
of them if I want to. I hit
(32:50):
okay.
It looks at those, grabs their names, their
variable types, the data types of those columns,
and pulls that
in. So we're done. We've connected to a
PLC, connected to the database.
Now we can set up a transaction. So
I click the transaction button in the middle,
new transaction.
Now if we just wanted to write data
to the database, we'll do a new DB
(33:12):
insert.
It opens up another window.
You can connect to multiple databases like we
said. So I click database,
select the one that I've defined,
and then under that,
it's what table do you wanna write to.
In my case, I'll say the work in
process table. And this is just to replicate,
(33:33):
hey.
We have a table. It's got operator, time
stamps, cycle timeline number in it. It's just
a replicated production line.
I'll pull open Studio 5000.
And you can see we look in here,
I have
a production count tag. It's just on a
counter to increment every 2 seconds to replicate,
(33:54):
hey. Every 2 seconds, we're getting product in.
The module's gonna monitor this tag. When it
sees that it's changed, we're gonna send data.
So we'll write a new record to the
database every 2 seconds,
populating those values I read off earlier. So
if I go to controller tags,
pick my PLC,
and then I can simply drag and drop
(34:16):
this in here.
It's really easy. If they were all together,
I could shift highlight
and drag them all in at once, but
I have them spread out. Or if they
were in an array or a UDT, you
could just
grab them all at once as well.
With my module,
you can like I said, if you have
(34:37):
a time source, you can take the time
stamp that the module has itself,
populate that in there. You can also do
a bunch of things to manipulate the data
before writing it up or anything like that.
Another one would be to add a constant.
So I'll put my name in there,
simply hit this button to connect them all,
(34:59):
and I'm almost done. So we've told it
these are the tag values we wanna take.
This is where we wanna write them to
in the database. Now we need to tell
under what condition to do that. Now before
you do that, I'm gonna interrupt you for
a second. I just Yeah. For the audio
audience,
when we added the table, right, or you
could add different things, but we added a
table,
all of the,
(35:20):
basically, the fields in that table came up.
We have operator. We had time. We got
sickle time. We got line number. That came
up as a list of,
you know, boxes on the right hand side.
Right?
Think of it as like very small, like
function box boxes. On the left hand side,
we have the tag browser,
and Quentin was just dragging in randomly for
well, not randomly, but he was just dragging
(35:40):
in what he wanted. He was searching through
the the tag browser and just dragging them
in, and he was lining them up so
they would line up, you know, in order.
So time went to time and, you know,
cycle time went to cycle time, line went
to line them, and so on. And so,
he lined everything up on the left hand
side so they would be directly across from
the fields in the table on the right
(36:00):
hand side, and then he hit a button
and boom. Now what if you
do they always have to be lined up
like that? What if you weren't perfect and
time stamp was at the bottom? Yeah. Would
you be able to manually,
move them around?
So you can manually connect them as well.
Oh, okay. Okay. Great. So if I had
them off or something like that, then, like,
you can see there, I can just drag
(36:21):
it to wherever I want.
Mhmm. Mhmm. So yeah. It is easier to
line them up. I can It's easier. Yeah.
Especially if, if you're doing a bunch of
them.
But, yeah, there's
you can do it either way. There's a
button for if everything's
if you've dropped them in or they're lined
up already. But if not, you can just
(36:42):
manually connect them however you want. Let me
ask you this question. So I saw you
added for the operator in the database, you
added a A constant. A constant with your
name on it. Right? Yep. But I think
right before that, you were saying that I
could massage the data. So if I needed
to
for instance, I needed to multiply the pass
count by 2 because I wanna look really
(37:03):
good.
Right? And and maybe divide the fail count
by 2. Yep. I could do that in
here, and nobody would be the wiser.
Yeah. That's exactly right. Would be the fun
Yeah. Yeah.
Yeah. So there's a whole bunch of different
conversions.
Like, math is one of them.
Another one would be actually maybe
(37:23):
maybe you can't change the PLC in the
day or the database and you need them
to match up. Maybe I need to do
a conversion
from, like, a string to an integer or
a float to a string or something like
that or another a common one's a date
time. So a date time is a is
a column type in the database. That's actually
what I have right here is a date
time. Mhmm.
(37:44):
So that's a specific thing for Microsoft SQL.
Maybe I wanna convert that to a string
to write it back down into the PLC
and be able to read it that way
Yeah. Since date time's not
a a variable type in logics. Right? So
there's a lot of different types of conversions
that take place,
bid operations.
(38:05):
You can even create your own.
So, yeah,
encrypt data before sending it up. All kinds
of stuff are built into that that that
could be utilized.
So
Yeah. I think if you have, I think
the date time formats
are very new to LOGIX, very, very new.
I'm just Oh, okay. My memory here. So,
(38:25):
yeah, if you have anything older, you're not
going to have all those 64 bit datetime,
that other PLCs have that look at true
logics didn't have for many years. So that's
extremely helpful to be able to convert that,
you know, either way, which is I think
is really cool. Yep. For sure.
Yeah. So a lot of times I'll have
I've had, like, when we're talking about recipes,
(38:46):
maybe the
differentiator
got multiple
entries,
but they're the differentiator
(39:07):
is, hey. This one was from 3 months
ago. This one was from
a year ago. Which one do I wanna
pull? So they can actually pull that record
in, and you can do an order by.
So I wanna pull in the oldest, the
newest, or based off of a certain time,
and they can pull that back down
into the PLC and look at it on
(39:27):
the HMI and be like, yeah. That's the
one I want. I wanted the one dated
for this particular date. So it can be
useful for sure.
But like I said, once you have everything
connected, we need to tell it under what
conditions we want it to execute this and
send that data up.
(39:48):
Lot of different options here for how you
wanna do that. The most common is, hey.
We're gonna monitor a tag in the PLC,
look for its value to change.
Or if you wanted to do a boolean,
fire on the rising edge of that boolean,
change it from 0 to 1,
always fire if it's just something you wanna
gather data from. If it's a process,
(40:11):
you can see there's lots of different options
in here. I'm gonna do change because like
I said, we just have that production count
tag in there. It's incrementing.
Every time it increments,
we wanna store data associated with it. So
I'll take that tag in my tag browser,
pull it into my trigger window,
and this just says every scan period,
(40:32):
check this tag. If its values change from
the last time we scanned it,
we'll write that data
to the database.
Now something that's a little bit different maybe,
people have caught on to or not, you're
not seeing me hit save on anything.
So as I hit okay, it's writing that
(40:53):
to the solid state drive in the module.
You can see up here, I can stop
the module as a whole. I can start
and stop individual projects. I'll start that one.
And then even within that, you can start
and stop individual
transactions
as well. So you can come online with
the module,
alter and edit certain components of it without
(41:14):
ever causing downtime for
the other components that you're not trying to
mess with. So that's kind of a nice
feature to have.
Or you get a particular lineup,
need to come online and add a second
line, but you don't wanna mess with the
first
line that's already got its transactions done, you
can set that up.
So I set everything to run. You can
(41:35):
see it's incrementing. We get a lot of
good information here as far as how fast
everything's executing and the different components.
So on average, we're running at, like, 20
milliseconds.
Now, obviously, the more you load the module
up and the more data is being sent,
that's gonna slow down, and that it's not
just the module itself. It's the PLC's response
(41:58):
time and the database's response time.
Another useful thing is you can click a
debug button, and it'll show you a one
shot of the data being passed
to the SQL database. But if we wanted
to actually go look at SQL,
I'll come in,
hit execute, and you can see we've written
31 rows of data
(42:18):
each time based off that production count tag
changing and just populating that in there.
So it's really easy to configure.
We'll do something similar with the MQTT
side now as well.
So here's my AWS,
dashboard.
(42:40):
Actually need to go to IoT Core.
So IoT Core,
is an AWS service.
It's got a MQTT
broker in it. I'm logged in to my
user. I'm going to the settings tab, and
from there, I can copy my endpoint, which
(43:01):
is unique to my account.
If I come back over to where I
configured my SQL database, if I click new
database application, you can see there's new MQTT.
Select it,
paste
that endpoint in there.
AWS
does require
encryption
(43:21):
and uses
certificates to do that, so I hit the
advanced tab,
enable SSLTLS,
user certificates,
and I've previously
loaded mine in here. But if I had
not, I would need to import them, and
they're just generated from AWS.
I'll load them into the team manager
(43:43):
so that it can use those to make
the connection to AWS.
I hit okay.
Now in this case, there's publish, which is
writing to MQTT.
Subscribed is reading data back down from MQTT.
We're gonna publish to MQTT
in this case. So that's new outbound transaction.
(44:06):
Click on application.
You can see my MQTT
adapter.
So you notice we didn't enumerate a table
or see the table names because there a
table doesn't exist. Right? It's a little bit
different. The way MQTT
keeps things straight is by topic name. So
when I write to a particular topic,
anything
(44:27):
subscribed to that topic receives the data.
So when we were looking at my dashboard,
it's
subscribed to receive data from T manager o
one turbine 1. So if I click this
gear right here,
go into my MQTT
endpoint,
I wanna write specifically
to
team manager
(44:49):
o one turbine 1.
I can hit validate connection,
and then that lets me check, hey. Can
I write to this topic with everything I've
configured this far, like my endpoint name, my
certificates? And it tells me, yes. I have
access to that.
So I select it.
(45:11):
And like I said, since there's not a
table or structure exists, you have to feed
it a JSON schema.
The module will create that for you if
it's in an array or a UDT.
So in my case, I have a UDT.
It's called wind turbine.
And if we actually look at my dashboards
(45:33):
again,
you can see I have a wind turbine
dash board. It's got RPMs, torque, wind direction,
average power, and speed.
So I'm gonna write data.
And some of these, the averages, it's just
gonna take that data as it comes in
and average them into a point, like, every
5 minutes. Other, it's gonna be the raw
data as it comes in, but this is
(45:55):
what we're gonna populate. So I have tags
in the PLC that match that.
So I come back to my UDT. I
right click on it and say generate JSON
schema,
You can I'll just do wind demo.
It imports it.
I can now select it, and it just
(46:17):
matches that UDT tag structure.
So you can see it's got the UDT
name wind turbine, and then it's got the
timestamp, wind speed, RPM, etcetera
for that. I can now shift highlight these
from my tag browser,
drag those in just like we did on
the SQL side to match up,
hit connect.
(46:37):
We're almost done. We need to tell it
under what conditions we want this thing to
execute.
In this case, we're just gonna set it
to fire not off of something happening, but
we're just gonna say, hey.
Every second, let's send the data up. So
I'll say always,
hit okay, select that trigger to always fire
every second,
(46:58):
save that off,
and now I just need to start my
trigger that's running every second and start my
micro my MQTT endpoint where we're sending the
data,
and you can see that count starting to
increment as well.
If I wanted to see the raw data
again, I could hit that debug button.
It's getting passed in.
(47:19):
And then if we jump back to AWS,
you can see we're now populating those that
data in there. Like I said, the averages
run every couple minutes, so it's gonna take
all that data in, and then it'll run
an average for it and put it on
there every 5 minutes or so. But
that's how the MQT
MQTT
portion works as well.
(47:46):
And that's it. We could dive into other
stuff,
if anybody had any questions, but I think
I'm I've ran over a little bit on
Sean's time
already. But hopefully everybody finds that useful.
It is
connecting to Rockwell PLCs, Siemens PLCs, and Modbus
PLCs as well. And so the connection to
(48:07):
the PLC side,
you just they pick those out, and then
the same capabilities are feasible for SQL, the
brokers,
the cloud connectivity
as well.
Yeah. I think on the, on the AWS
side,
or the MQTT
side, you gotta learn a little bit about
the JSON.
Yep. If you're if you're
(48:28):
you know, you can take your tags, right
click on them, create that file, but, you
know, you would need that needs to match
what you've set up in AWS. You may
not always be the one
setting up a do AWS or Azure. That's
correct. Have some JSON file editing to do
with your partner on that side.
But aside from that, that was as easy
as doing it for the, the database.
(48:50):
So,
I thought that was really good. Yeah. You're
exactly right. So the since there's since there's
not a defined structure with, like, the table,
whatever you're trying to feed on the back
end, you all need to agree to some
type of format.
In my case, I'm populating a dashboard.
There's another thing. If you just wanted to
see the MQTT
data coming in,
(49:12):
I guess we'll say raw or before it's
getting populated anywhere, we can go do that
real quick. If we go to the MQTT
test client
and just do a subscribe,
you can see the actual packet format as
it's coming in.
And so that's just another view. That's what
it looks like.
What I have set up is that it's
(49:33):
looking for this data
on that particular topic name, and AWS is
pulling those values out and populating them on
my dashboards. But you're exactly right. There needs
to be
an agreement
between whoever's setting up the back end, whatever's
gonna use this data that's being populated from
the PLC and what that structure is looks
(49:56):
like and how it's defined.
Yeah. And just for those who are listening,
what we're seeing here is in the in
the window is we're just seeing wind turbine,
and then we're seeing each tag name in
quotes and then a a colon and then
the actual value.
So it's it looks looks like you're looking
at, you know, a text file and notepad,
so there's nothing nothing scary here. But,
(50:18):
yeah, it just it may be something new
if you haven't like, we've I did a
MQTT for the audience. I I think it's
been a couple years now. So if you're
not doing it every day, you may you
may not remember it, but it's it's it's
easy easy to get your hands on. And
I'm sure the guys who out there listening
who have already done it, the guys and
gals are kinda like, sorry, Sean. Be quiet.
But, in any case, no. Thank you for
(50:39):
showing that. For sure.
And I I it sound like that was
it. Was there anything else you wanna show
us?
No. I mean, the module does have storm
forward. We can write status and feedback to
the PLC, but I I think that's the
gist of it. I mean, we could spend
hours going into the detailed settings of things,
but there's no need to do that, I
(50:59):
don't believe. So I appreciate you having us
on.
No. I appreciate you coming on, Quintin. I
knew this was especially with the new stand
alone modules. So if you're not using a
Rockwell,
you know, in in in America, I know
a lot of people do, but, you know,
if you're using a Modbus based or Siemens
based PLC, now you have another option there.
But so, you know, just in RAM out,
IPC up, ready to go. But, you know,
(51:20):
I I guess I I wanna go back
to what you said earlier is, you know,
if somebody is out there. Right? And so,
you know, if you're in the audience, you're
like, this sounds like something I want.
Who should they reach out to? And I
know you said this at the beginning, but
I'm just gonna say it like ask you
to say it again. Who should they contact
if they're like, I think this is right
for me? Yeah. I mean, our our we
have some general lines depending on what you're
(51:41):
trying to do. If it's more of like,
hey. I wanna I'm interested in this. I
wanna see a demo or get pricing, then
reach out to
sales.us@softing.com.
If it's more of a technical question of,
like, how does this thing work or what
are its capabilities,
you can send that to support.us@softing.com.
(52:02):
I don't know.
You can also reach out to me directly.
I I guess I didn't put a slide
in there for that,
but it's quinton.lowery@softing.com.
So any of those,
we'll be able to get you pointed in
the right direction and get you taken care
(52:23):
of.
Well, Quentin, I really appreciate your time today.
I really liked going through this. I haven't
seen this in so long
that it was a great refresher for me.
I can always think of all these applications
I could use it on. So, thank you
again for coming on, taking time out of
your day to come on the show, and
bring us up to speed on the team
manager.
I really appreciate you having us on. I
(52:44):
think it's great that you're doing this for
the for the industry and for the community.
So thank you. Well, I hope you enjoyed
that episode, and I wanna thank Quentin for
taking time out of his busy schedule to
come on the show and bring us up
to speed on the team manager, not only
to give us the presentation, but also to
give us the demo. I really appreciate that.
I also appreciate the members
who get access to the video edition of
(53:06):
this show because this show is not sponsored
by Softing.
So the audio is, of course, free to
the public, but the video is a member
perk for just
$9.99
a month. Thank you to all you members
out there. With that said, if you did
enjoy this episode, please do not forget to
give it a like, a sub, a share.
And if you're on the audio platforms, give
(53:27):
us a 5 star review. That is the
only surefire way to grow our audience and
find new vendors to come on the show.
And, of course, if you know anybody looking
for PLC HMI or skater training,
please tell them about my website, theautomationschool.com.
I do online training. I also do in
person training now. I've already had 8, classes
(53:47):
already, and I love doing them. Right now,
I'm only doing 1 to 4 students, so
kinda custom training
per company. But in any case, please, if
you know anybody looking for training, please let
them know about the automation school.com. And I
just wanna wish you all
a great week. I wanna wish you good
health and happiness.
And until next time, my friends,
peace.