Jump to content

Flex727

MVP 2023
  • Posts

    3,261
  • Joined

  • Last visited

  • Days Won

    236

Everything posted by Flex727

  1. Do you have the "Transparent Background" box checked? If so, try unchecking it.
  2. Did you try placing a positive transition contact of SB 7 in front of one and a negative transition contact of SB 7 in front of the other? That should work in your case, but the proper way to do this type of communication is to set a bit periodically and place the following in series: Direct contact of the set bit, inverted contact of the function in progress bit, the comm FB, then a reset of the first bit. That allows the function to "wait" while any other communication is in progress.
  3. Yes, but two things: 1) Don't use SB 7, use SB 15. SB 7 is a square wave - you want a positive transition. 2) Place an inverted contact of MB 0 (Function in Progress) between SB 15 and the MODBUS read FB.
  4. To read an MI, which is a 16-bit integer, you need to use the R.H.R. #3 function (Read Holding Registers). You are trying to use R.C. #1 (Read Coils). Coils are single bits (MBs).
  5. Take a look at the example projects that came with your VisiLogic installation.
  6. You'll need "High-Speed" outputs. Those aren't available on the IO-D16A3-RO16.
  7. You'll use your PID to control the frequency or duty cycle.
  8. Of course. Yes, PWM function blocks are available. Which PLC are you using?
  9. Sounds like you're trying to create a thermostat. PID control makes no sense for digital I/O.
  10. It looks like you're trying to read two vectors each of length 2 in two separate reads. The two vectors are only 8 registers apart. Why not simplify by reading it as a single vector of length 12? Block out MI 2508 through MI 2515 as "Do Not Use" and move your current use of MI 2508 - MI 2509 to MI 2516 - MI 2517.
  11. Add a delay timer. You are trying to do the second read on the very next PLC cycle. Perhaps the MODBUS slave cannot respond to multiple requests that quickly. Try giving it a 100ms or so between reads.
  12. I moved this to a more appropriate forum. You can find example UniLogic projects here: https://unitronicsplc.com/Download/Support/UniLogic/UniLogic_Example_Projects.zip
  13. Assuming you don't want to simply hide the indicator light to make it blink (i.e. show the light there but make it go gray or black or white to show the blink off condition), then I would assign zero to the blink off image and assign 1 - 4 for the other 4 colors and use SB 3 to alternate the list of images value between your assigned color and the off color. The following two lines of code allow you decide whether or not to blink and then blink the light between the current assigned color and the "Off" color. MI 1 would be the link for the List of Texts by Pointer.
  14. I have run large MODBUS data exchanges between two PLCs on every PLC scan (not every 500ms, but at a rate of about 7ms - the scan time of the running program) without any issues whatsoever. I don't believe there is any issue to be concerned with.
  15. What do you mean by "store"? Where are you trying to store the number? What is the source of the number? What are you trying to do exactly? Floating point number operands are available (MF operands), but they are separate from the normal math and store functions. You can find them under Math / Float. However, depending on what you're trying to do, you should keep the number as an integer while keeping track of the implied decimal location within your logic. For a number like 6.2, just multiply by 10 and store it as 62. You can display it properly on the HMI without any further math.
  16. Unitronics also has video tutorials, accessible through this forum and on YouTube.
  17. Use the Compare function to turn on the output when the temperature exceeds your limit.
  18. Of course there is a practical limit, but I haven't run into it. When you consider that Ethernet runs at 100 Mbit/s, simple math says that in 500ms you could exchange 50 Mbits. Of course there is overhead, so I'll divide that by 2, giving 25 Mbits. Divide that by the 32 bits for your INT32 registers, then you get 781,250 INT32s can be exchanged. I'm sure there are other factors of importance here and there is a MODBUS limit of 256 bytes per request, which will be your primary limiting parameter.
  19. Outstanding! This works like a champ. Thank you!
  20. Thank you for getting back to us with the solution you found.
  21. The input from the PT100 sensor will be placed in the operand you select in the HW Configuration. It will have a resolution of tenths of a degree (you can select either C or F). The value will have an implied decimal (i.e., 102.6 degrees will have the value 1026 in the integer operand you select). You can then display that on the HMI screen using the HMI Numeric function and selecting 1 decimal place in the configuration box for the numeric variable display.
  22. Perhaps a distributor can answer your question directly, but you can easily create a 4-20mA output in ladder with the correct linearization settings.
×
×
  • Create New...