Jump to content

Joe Tauser

MVP 2023
  • Posts

    2,860
  • Joined

  • Last visited

  • Days Won

    308

Everything posted by Joe Tauser

  1. Amateur radio people are notoriously creative with the most hacked-up parts. My call sign is KEØZCM. If you rolled your own rotator assembly you may be able to roll your own quadrature encoder by adding a second sensor. I have actually done that on a machine using photo sensors, but if you have a tooth sensor that will work, too. The trick it to place the sensors so the pulse trains are 90 degrees out of phase as the gear rotates: The sensors don't have to be right next to each other as long as you can get the offset waveform shown above. Then you can use the Samba's encoder function. There's lots of ways to skin this cat. Joe T.
  2. You're welcome. The UniStream manual is correct. According to the official RS485 standard B is supposed to be + and A is supposed to be -. The problem lies in many of the manufacturers that didn't bother to look that up. It makes more sense for A to be +, so that happens a lot. RS485 really is kind of the Wild West of serial communications. Joe T.
  3. The shift source needs to be numerical tag with more than one bit, like a UINT16. It could be an array of UINTs. When you speak of an Input, do you mean a discrete input? If so, then that won't work. You'll need to write some code to set a bit in the source tag with the Set Bit function under the Logic menu. If you're shifting right, I'd recommend setting bit 15. I don't know what the largest "B" value is. I tested it by making an array of 50 INT16s and entered 512 and it took it. The shift out is a bit. 0 or 1. At this point I'd recommend writing some test code and playing with it online so you can see it work. You're not going to break the PLC. Joe T.
  4. Thanks for uploading your program. The difference between Input Registers (function 4) and Holding Registers (function 3) can be very confusing indeed. It goes back to the days of Modicon PLCs where Input Registers were assigned to I/O modules in the rack and were type 3xxxx. Almost all device manufacturers use Holding Registers these days (type 4xxxx). When specifying the address, you don't include the leading "4". Unitronics specifies the address in decimal - if you want to go above 9 you'll need to convert the hex addresses in your document to decimal. If you want to really understand the Modbus protocol get yourself a large cup of coffee and look at the original protocol - https://www.modbus.org/docs/PI_MBUS_300.pdf Anyway, in addition to changing your operation to Read Holding Registers I noticed you are trying to read a float value into an integer tag, which won't work. If you go back and look at the document in your first post you'll see that the "Hosting Number" or Modbus address increments by 2. This is because floating point numbers are 32 bit values, and Modbus addresses are 16 bit words. When this protocol was defined there were no floating point numbers in PLCs so it wasn't addressed. I re-defined your "ph reading 1" array to type REAL, which is what Unitronics calls a floating point number. I also modified your slave table. Load this into your PLC and let us know what happens. Joe T. test1 JT.ulpr
  5. Unfortunately, even after all the years UniLogic has been around some of the function blocks haven't made it into the Help. However, if you hover over the letter of any block a tip will appear: You can't see it, but my mouse pointer is over "A" - the source tag or array. "B" is the number of bits in the tag or array to shift. "C" is the value of the bit shifted out. @Cara Bereck Levy - could we get the Shift Rotate functions added to the Help? Joe T.
  6. Moved to the correct forum. For a 4-20 mA signal, do you have the jumpers set properly inside the module? If so, remove the input signal and measure the resistance between the input terminal and the COM terminal. It should be 500 ohms. I've been known to connect 24VDC directly to a 4/20 analog input and frying the resistor. Joe T.
  7. Yes, the EX-RC1 does require it's own program. It's basically another PLC with limited capability. Reach out to support@unitronics.com to get older versions of Visilogic. Does this mean you can still get the program out of the original RC1? Joe T.
  8. Upload your program so we can have a look. Joe T.
  9. These links don't work. Shall I delete the post? Joe Tauser
  10. You'll also need an EX-A2x Expansion adapter to start the IO chain for the IO-AO6. Otherwise your hardware list is good. Don't forget the run contacts for the VFDs. The -E3XB module can handle that. You'll probably want to handle the Manual / Auto status in the PLC. That way you can set the speed from the PLC while in Manual. Six pumps? That's a lot for a cooling loop. How big are they? What kind of flowrate and pressure are you dealing with? Are there subloops that get switched in and out? Joe T.
  11. Let us know if "Stage Timer" is a local or a global variable. Putting a timer inside a UDFB is not recommended as the local variables are created and destroyed with the function call. I don't know what's going on in your case. Is "Stage Timer" used anywhere else? I would roll my own global accumulator using an Add block and a system time variable as a pulse. If this function is called in many places you'll have to add code to load and unload the value of the time accumulator in your function. Joe T.
  12. I don't think you're going to get high speed updates on a web page. One of the Creators can chime in on this. Have you tried the VNC server? Joe T>
  13. If you can't get it working upload your program so we can have a look. Joe T.
  14. Hi Thomas - I didn't have the U90 software on this computer so I finally downloaded the latest version (6.6.45) and installed it to look at your program. First I looked at your HSI configuration mapped to MI 30. The Jazz series has limited data type functionality and the HSC can only be mapped to a single MI. From the Help- You mention above that you have MI 30 and MI 31 mapped to the HSI input. I looked through the Help and I didn't see anything about the HSI input being automatically mapped to two consecutive registers. I think your basic assumption here is wrong. Please correct me if you have information indicating otherwise. So we're going to have to do it the ancient way. In the Long Ago (1980s and 90s) most PLCs only had 16 bit integer values and there were no Long Integers, so we had to come up with tricky ways to work with the tools we were given. The Jazz is a handy little PLC but it sucks at math, which always seems to come up in an application. I personally call this the "Jazz Wall" and it's the main reason I don't use them anymore. For your next application get yourself a Samba, which is a low cost Vision PLC that doesn't have issues like this. Anyway, moving on with what we have to work with here the first thing to do is address the 32767 count limitation of the HSI so we'll have to do some program gymnastics. We do this by counting to 1,000 and then incrementing another register (MI 100) and resetting the HSC (MI 30). This will give us two split integers representing up to 32,767,000 to work with. Note that you will be limited in the counter reset by the scan time of the PLC so you may lose a couple of pulses during the 5 ms or so that it takes the Jazz to reset the HSI counter. You'll have to tell us how fast the pulses are coming in. Since we will be using this in a Long Integer calculation, I clamped the High Byte of the HSI (MI 31) to 0. Now we can use the 1,000 counter with a Multiply function to get an actual Long Integer number containing the virtual high value of the counter. I also clamped the High Byte of the 1,000 counter (MI 101) to 0 so there are no surprises. We add the current HSI counter value to this number to get a full representation of your counter value - Now your divide by 435 block should work. I don't have a Jazz here to test this so I don't know if this will work for sure. I've attached the program. Load it into your unit and let us know how it goes. Joe T. Teich Steuerung v70 JT.U90
  15. So.... did you use Revo Unistaller when you posted this or just the Windows uninstaller? Joe T.
  16. Try uninstalling Remote Operator with Revo Uninstaller and doing a fresh install. Be sure to run the install as Administrator. Joe T.
  17. I just installed a copy of UniLogic 1.33.373 as I want my program to be compatible with the chipsets in the IO modules that are now shipping. I'm currently entering IO tags and descriptions. As is my habit, I compile and save from time to time to make sure I'm not screwing something up. I entered some tags and compiled with no code and got this "Warning": Most programmers I know do their best to write their code so Warnings don't occur. This particular Warning is not something I can make go away. So like a good little boy I took the software's advice and implemented the System Error struct to log errors into a data table. Surely this would make the UniLogic AI bot happy - But Nooooo! Hey, UniLogic AI bot! Take a look at the "D" parameter! A value of 1 means Async IS set to 'true'! So I'm not even out of the chute yet and my program has Warnings. Gah. @Cara Bereck Levy - I see there's a "Messages" tab on the Error List window. Could these suggestions possibly be directed there? The Warnings tab is kind of hallowed ground. Joe T.
  18. USB to Serial Adapters can be very finicky. Make sure yours has the Prolific PL2303 chipset. Joe t.
  19. I've been known to do that. Kratmel is the King of figuring out how to repair his PLCs. Joe T.
  20. Make your own OnChange logic. Copy the the Slave Success to a second tag on a regular basis and then compare the two. Joe T.
  21. Ports and protocols are fairly easy to define in the PLC; and as Flex mentions you can have four simultaneous conversations going on at the same time with a V570. Do you have the program? Joe T.
  22. For starters make sure the firmware in your PLC matches the version of UniLogic you are using. Then upload your program so we can check it or contact Official Unitronics Support at support@unitronics.com. Joe T.
  23. Create a string in logic that has your value and units combined. Joe T.
×
×
  • Create New...