By alex31This is a simple code the ASCII communication between
Rinstrum R320 weighting indicator and Micrologix1100..... /wink.gif style=vertical-align:middle emoid= border=0 alt=wink.gif />
By Ken Roach6-rung code example to read one parameter from multiple AC drives on DeviceNet.
By Chris ElstonExample of a couple of message instructions from the ML1100 to a Cognex 3400. I am not triggering the camera via ethernet. I started using the hardware trigger but then the customer wanted to add a "crack" inspection around a 360 degree object so I had to change my camera over to "continuous" trigger to be able to spin the part 360 degrees with a robot looking for a surface crack defect. So then I just message the crap out of the camera during this process.
By panic modeThis was one of my early projects. I had to measure resistance in pretty
wide range on a delicate circuit (subject was changing value and in range
from few ohms to more than 1MOhm).
Normally I would have used something like RTD transducer but I just couldn't
find anything suitable for that range (every transducer I could find was
stopping at some 8 or 10k i needed at least 100x more).
The time was running out so I had to put something together and fast.
This is it. Initially this circuit was using dedicated regulated
low voltage power supply but since I had spare analog input(s)
I replaced that power supply with voltage divider (Panel had existing
24VDC power supply) and simply had to monitor that voltage because
it was not regulated any more (the 24VDC was regulated but the output
of divider was changing depending on test conditions).
Although we like to avoid custom designs this turned out to be so simple
cheap easy to use and worked extremly well. It is so small that there
was no need for PCB two resistors ware connected directly to terminals.
Accuracy off course could not match the 8-digits of precission benchtop
multimeter but it was on pair with my multimeters which is more
than I could ask for. I didn't test it for significant ambient changes
(temperature and humitity).
There are several ways to do the math for this and in fact used aproach is
not the simplest or most efficient. But it is good example on how simple
DC circuits knowledge and very basic match can be used in practice.
R1 and R2 are not critical and don't need to be accurate either (just need to
produce voltage that fits selected range for used input card.
It is robust enough. In fact I was surprised to see results when R1/R2 ratio
was adjusted to produce only 1 Volt (what kind of ADC they have in their cards?).
----- EDIT ----
Download Link currently doesn't work so just click on
"Click here for to join forum discussion"
A simple cycle countdown for HMI displays, showing minutes and seconds remaining in clock format. Includes Start Stop and Pause functionality.
By BobLfootI've seen several Sequencers but not one quite like this. The Integer Bits trigger the step and the Boolean Bitrs end the step. You add the code to make that happen.
By Ken RoachIn applications where unreliable IP transports (such as wireless) are used some users report "flaky" Produced/Consumed tag connections and I/O connections over EtherNet/IP.
Rockwell never recommends wireless Ethernet for I/O but some users overlook this recommendation or install links that should be reliable enough but due to installation or configuration issues are not and need to be troubleshot with the participation of the control system.
This logic example is a diagnostic tool to provide a timestamp and duration for connection faults. It is written for a controller Producing data to another controller over EtherNet/IP but would work the same for a connection across ControlNet or the ControlLogix backplane or for an I/O connection.
The program was written using RSLogix 5000 v12.06.
Just putting the remote Controller into this Controller's I/O tree is enough to establish a connection; the Produced/Consumed tag (called Produced_Data on the producer side and Consumed_Data on the consumer side) is not strictly necessary.
I've used logic like this to find interference from motion controllers or heavy motor starters as well as microwave oven interference in the 2.4 GHz range. It's not a cure-all diagnostic tool but it can tell you when and how often a connection is failing.
This logic may be used in conjunction with the traffic analysis tool triggering example to capture data on an Ethernet network on both sides of a connection failure event.
By wardThis is a program to change the processor clock ahead one hour in April and retard the clock one hour in October.
By Chris ElstonClassic example of a FIFO (First in First Out) Load and Unload.
Application was bottles coming down a conveyor system at a "variable" rate and sporadic. Sometime 10 bottles would be grouped together all in single file others they would be spaced out oneisy twoisy.
A photoeye was used in a vision cell up stream this photo triggered the vision system and loaded the FIFO at the same time.
A photoeye was placed downstream next to an air blow off nozzle. This created a "zone" at which you could load and unload the FIFO and keep track of bad bottle in-between your zone. Bottle QTY could vary between the vision photoeye and reject photoeye.
The vision system was triggered and part status was loaded into N7:0. A 1 means good part a 2 means bad part. The 1 or a 2 was loaded into a FIFO and placed into N7:1 at the reject air station. If the FIFO status equals 1 at reject it was allowed to pass if equal to 2 the air nozzle was turned on under a timed blow off.
This was a field installed retrofit project that involved a 10 point Micrologix 1000 that cost $72.00 4 Keyence Vision systems and 2 Banner EZ-Beam photoeyes. Cake work.
By Ken RoachA Message instruction can be used to check the Ethernet link status of a 1756-ENBT or other ControlLogix family Ethernet module port to determine if there is a good Ethernet link.
This example shows how to send a CIP Generic Message to Class 0xF6 Instance 1 Attribute 2.
The applicable page from the EtherNet/IP Specification (www.odva.org) is included in the ZIP file. The program file was greated with RSLogix 5000 v15.
By TimWilborneHere is a few lines of code I use to configure the 1761-NET-ENI Series C over Ethernet.
From what I understand the Series D can be configured over Ethernet with ABs utility but we have many Series Cs so this works very well for us.
I have never tested this on a Series A or B
By TimWilborneHere is the basic sequencer I use for RsLogix500 products. Let me know if any of it is not clear. I simplified an existing program just to show the sequencer parts
By TConnollyFrom time to time a long time base precision timer may be required. The SLC .01 second timebase timer is good for only 327 seconds. Cascading a timer and a counter together is undesirable as it will introduce a cumulative error into the time because of differences between when the time period
actually expires and when the timer is next scanned.
By running two timers in parallel we can maintain an accurate time reference from which to compute a floating point time with .01 second precision up to 32767 seconds. The first timer has a one second time base and it is the primary timer. The second timer has a .01 second time base and it is
used solely to compute the fractional seconds. By using a comparison to subtract one second from the .01 second time base ACC when ever it exceeds a full second we can maintain an accurate time independent of the processor scan time so long as the rung is evaluated more than once a
By Chris ElstonHere is a sample program that talkes to a Mettler Toledo BBK scale using a Point I/O RS232 ASC module on device net. Way powerful module!
To query the scale you need to send an ASCII command:
This is the capital "S" a carriage return then a line feed.
In the Allen Bradley SLC PLC you'll need to send special characters.
ST18:10 (see PDF file data_file.pdf page 25)
string value to printer from PLC
^M in Allen Bradley means = carriage return
^J in Allen Bradley means = line feed
Next you have to parse the data the scale just returned to you.
Starting at Rung 5 in the PDF read the string from the scale (through devicenet) and begin to parse out the "data".
The scale sends the PLC a string like this:
^S^JS S 0.000 lb
See ST18:0 in the data_file.pdf.
Begin to count characters to the data you need weight in the case. Then "extract" the portion of the string into another ST18:1 register.
You'll notice that the data has a decimal point in the string. Allen Bradley doesn't support "string to real" function so you'll need to extract the whole number then extract the decimal point value into two separate strings. Once you do that you can do a string to integer conversion. Once it's an integer format both the whole number and decimal place you can add the two values back together like it was before as a real type format or floating point using ladder logic to do the math.
By SnerkelCalculates the day of the week.
Calculates the week number.
Auto adjusts PLC clock for British Summer Time.
Works with any SLC processor with a RTC does not require floating point.
By swimmy67Example code showing communication example between SLC 5/04 and one PowerFlex 40 Drive and one PowerFlex 4 Drive.
By tjmurfA simple example to extract the error code and the device address from the 1747-SDN scanner.
This is a somewhat modified version originally from a AB technote which I can't find.
I used this for an HMI display. The last line is to mon
By Ken RoachRSLogix 5000 v13 example for parsing a data string from a Sartorius-brand scale.
This is in response to Rodger Furey's inquiry in this thread:
By Ken RoachThe ASCII instructions in the SLC/MicroLogix can be hard to use even if you are accustomed to other complex A-B instructions. They operate asynchronously to the CPU and work in a queue and have to be managed more carefully than message instructions.
By AubergMOur Improvement department wanted a way for the operators to know where they were in the process based on cycle times. I came up with this little jewel to alert the operator with a buzzer half way and < 30 seconds remaining. We look at # Made Hit an