b_carlton
MrPLC Member-
Content count
1207 -
Joined
-
Last visited
Posts posted by b_carlton
-
-
The DINT result should be rounded. If your 'Roll_Length' values after the decimal point are somewhat random the differences during the shift should somewhat cancel out. Note that the rounding uses 'bankers rounding' but it should have little effect. The only difference is when the fractional part is precisely .50000...
If the fractional part is very important then change 'Length_Total' to a REAL and have the shift operators record that number with however many decimal positions you feel are needed.
-
Please demonstrate that you have read the manuals relating to the PLC and the VFD. Post PDF diagrams of your electrical control wiring. Post a zipped copy of the PLC ladder logic you have developed so far. Note where you arre having problems including steps you have taken to troubleshoot. Until you have done these things do not expect much help (especially since you are a student and this should be a learning experience for you.)
-
See this discussion from a while back - http://forums.mrplc.com/index.php?/topic/1270-why-do-i-get-this-fault-on-micrologix-1000/
-
You didn't mention the HMI you are using. If you are using the CMore display from AutomationDirect then look at 'Recipe Buttons' which, when pressed, can send specific values to the PLC.
-
I'm trying to understand your question. As far as I can tell you may be wanting to display the current contentts of the accumulator stack on an HMI. Is this correct? As an answer I don't be lieve the stack itself is directly accessable. And I also assume your 'AMD' is AutomationDirect.
-
Typically components to control a motor are packaged in a tested unit called a variable speed drive. These may indeed contain triacs or thyristors. Various configurations and power ratings are available based on the motor type and size you wish to control. Many will accept an analog input as a speed reference. This analog signal can come from a PLC. If you would state the type and power rating of the motor many fine variable speed drives could be suggested.
If, instead, you are asking how to design and build a variable speed drive you may need a different forum.
-
CLR sets a numeric value to zero. RES causes a structure - such as a timer or counter - to return to its start condition.
1 person likes this -
The MSG command provides the IP octets but places then in SINT (8 bit) tags. The Logix system treats SINTs as signed values. Thus any octet above 127 would be seen by any math or move function as a negative number. The comparison and math in the knowledgebase article works around this fact finally placing the values into larger sized tags (INT or DINT) where they will be seen as their true values (0 - 255).
-
This Knowledgebase article - 26779 - gives a lot of information (access everyone though registration is required).
Because the IP octets are returned in SINTs then viewing as decimal may give negative results (and, for added measure, they are returned in low to high order). The article shows a method to transfer to an array of 4 INTs or DINTs. But the possible minus numbers must be treated differently
Compare each SINT octet to 0.
If equal to or greater than zero then just MOV to the appropriate INT or DINT
If less than zero then MOV 256 + the SINT to the appropriate INT or DINT
-
What type of message is being used? It sound more like a GSV type of thing but I haven't used either to get the contorller's IP.
-
What are the data types of the tags holding the four octets? 'Hex' and 'Decimal' are just different ways of showing YOU (the human) the value stored in a tag. How are you viewing the tags?
-
Try a program with 1 rung
XIC I:0/0 (a non wired input) OTE O:0/3
See if that turns it off.
-
Make a PDF of the section of code you have tried and post it. It doesn't sound like it should be very many rungs. To get a negative preset you must have something basically wrong.
-
The help file entry for GSV -ControllerDevice pretty much breaks all the information out. What specific information do you need that isn't in it?
-
Confusing or not the GSV command is the method of retrieving the system's information including the date/time.
The command just requires you (for the date/time information) to have a DINT array, at least 7 units long, ready to receive the information.
-
Without access to the PLC code you are essentially spinning your wheels. You must require access to the code to be able to properly design and implement HMI applications.
-
After assigning I/O to the PLC and wiring it write a simple one rung routine to turn the motor on by using an input (leave the motor disconnected from the open/shut hardware at this point). Verify your start/stop controls.
Add rungs to control forward/reverse movement.
Next add a control using input from the LCD screen (I haven't used the screen this way so I can't help there) to turn on the motor for an entered number of cycles.
Once you are comfortable with that you can expand to hand making limit sensors to control reversing of the motor.
At this point you should be confident enough to mechanically hook the motor to the open/shut hardware.
-
Your PDF doesn't show the calculation for Bars_Current_Layer_Int. This implies that the connection is over an RIO network. I wonder if the update rates versus the scan times (asynchronous to each other) may be giving a lot of the inconsistency.
-
How did you configure the module data? See page 160 of the manual. Some choices do not automatically create the tag.
-
Play with the 'Radix' control in the lower right to view the data differently.
In this 'Data Usage' display the 'X' are noting bits addressed as individual bit in the logic. The 'F' on the left hand side notes that these words are used in in a 'File' type command like a COPY.
The 'Help' button provides a lot of information.
-
Consider the 'B' data table an array of INTs. The 'INTs' are accessible by B3:x The bits within the INTs are accessible by B3:x/y
The table can also be set to show the address as an array of bits accessible by B3/y with the numbering continuing to increase from one INT to the next.
This view can be set in 'View' - 'Properties' - 'Address Display (tab)' - 'Binary Bit Display Mode'
In like manner Integer (N registers) can be addressed as bits by N7:x/y
(The '3' for bits and '7' for integers could be other numbers if additional data tables are set up.)
-
Look for a quick 'off blip' on the emergency stop - I:1/0 - input. That would reset the HMI pushbutton bit. I don't know what else it would cause. Install a counter in parallel with the rung 63 unlatch of the bit. See if it increments unexpectedly.
-
This is reaching way back but the firmware in the DL06 must be at least 2.30 to support MWX and MRX in the D0-DCM.
http://support.automationdirect.com/firmware/historydetail.php?pid=40
-
Concerning double words (Long) in the Micrologix. Yes it's not a default but it is available. One problems is - the lack of instructions which support them. I don't have the reference here but I believe none for Multiply or Divide. I think they can be used in Add and Subtract. You can use Float (Real) but then you have to be aware of significant digits limitation.
In then end sometimes you have to view the PLC as a pure computer, check what it has available as far as registers and instructions, then use that to achieve your purpose. In other words you have to think 'below the instruction'. By this I mean imagine what is happening in the actual CPU. For this it helps to have a background programming microprocessors using their lowest level instructions.
Adding a REAL number to a DINT
in Allen Bradley / Rockwell Automation
Posted
Yes, probably loosing the .4 on each roll. I suggest using the REAL format for the total.