b_carlton

MrPLC Member
  • Content count

    1207
  • Joined

  • Last visited

Posts posted by b_carlton


  1. 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.


  2. 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.)


  3. 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.


  4. 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.


  5. 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).


  6. 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


  7. 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.


  8. 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.


  9. 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.)


  10. 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.