Jump to content

Flex727

MVP 2023
  • Posts

    3,276
  • Joined

  • Last visited

  • Days Won

    239

Posts posted by Flex727

  1. You cannot do what you want as long as a Direct Contact for MB 1004 is in Rung 7. You either need to remove it or change it from a Direct Contact to a Positive Transition Contact.

    Change the MB 216 Direct Coil to a Set Coil in Rung 7, remove the contact for TE 21, and remove the contact for MB 216.

    Change Run 9 to:

    MB216      TD21

    ---| |---------( )---

    Add after Rung 9:

    TD21      MB216

    ---|P|-------(R)---

    Note that the above requires you to change the Timer from a TE to a TD.

  2. Which of the 3 types of timers are you using? Look in the Help file under Timers (T) and you'll find a very clear and detailed description of how each timer works.

    If you want a bit to stay on for 1 minute, one way is to use a TE timer set for 1 minute. You will need to reset it before using it again, however. Another method is to use a TD timer and Set the bit you want on for 1 min and Reset the bit when the timer expires.

  3. I loaded your program into a V700 and the RTC is working perfectly. I also see the Direct Clock Function is turning on the correct bit (as of right now, MB 503). You either have a hardware/firmware problem or something about the I/O (that I don't have on my V700) is causing the problem. Please note that the only value you should see changing constantly is SI 30 (Current Second). Did you try setting the time from your PC by using the SET RTC function?

    By the way, I can't imagine your control over the LCD screen brightness (SI 9) is working properly. Why are you using STI (Store Indirect) with a Constant value?

  4. I hate to dig up a 5 year old post, but I'm wondering if anyone has used this potential shortcut: 

    This would be for a 100 point moving average:

    image.png.f65c8b69f838a455112f4c43439045eb.png

    ML 0 is the final moving average and ML 1 is each new point added to the moving average. This appears to me to be a bit smoother than an actual moving average, but with a slower response to large changes, but possibly good enough. I think it's obvious how to change it for any length moving average. Thoughts? I'm not a math whiz, so maybe I'm missing something important.

  5. For troubleshooting, I'm going to suggest you set the V700 logic IDENTICAL to the V570 logic but leave out the System Operands that don't apply. If that works, than re-create those operands, one at a time, using the Socket Status Request #22.

    When converting from V570 to V700, I would normally just change the V570 Hardware Configuration to V700 then adjust the graphics to fill the screen, as needed (as well as replace the communication System Operands that don't apply).

  6. With a V570, my Connect rung normally looks something like this. I've never tried to activate a Connect function with a one-shot as you are doing, but I suppose it could work if there was no other traffic to interfere.

    image.png.86815041efbd847e57497eb925a8959f.png

    You should do a bit of experimentation and take out the MI 2 Compare block and see what happens. When I work with a V700, I create equivalents to the system operands that I need using the Socket Status Request #22 rather than trying to do it in the rung for Connect.

  7. In the first picture (rung 5) you are checking the status of Socket 1 (Initialized, but not connected). You might want to do the same in the V700 using Request #22.

    In the bottom picture you seem to be checking the status of Socket 0 (rung 6). Not sure why.

    Changing over to the V700 shouldn't be a big mystery. Unitronics has clearly labeled the System Operands that no longer apply and provide a function that replaces those operands. Otherwise, everything works the same.

  8. You're piling too much stuff into one ladder rung. I've never tried to perform MODBUS Config before Socket Init, but it is likely important to perform the Socket Init first. Your ladder rung loses control over that order execution. Try breaking that rung into 3 or more separate rungs.

    I'll repeat something I've said before - Unitronics WILL NOT charge you by the rung. Break your code up into the basic simple instructions for both readability and to have more certainty that the code will compile the way you think it will.

    If that doesn't solve your problem, then you need to post the internal workings of each of your function blocks or post your .vlp file here.

×
×
  • Create New...

Important Information

This site uses cookies. By clicking I accept, you agree to their use.