Jump to content


Popular Content

Showing content with the highest reputation since 05/18/2019 in Posts

  1. 2 points
    There are a couple of I/O module that can you can directly connect a 100 ohm RTD to - the V200-18-E3XB snaps onto the back of the V700 and the IO-PT400 expansion module is similar to the IO-ATC8. Both of these modules return the temperature directly in 0.1 degree units, which probably what's confusing you. But this is not what you have in the Prosense (translation: Evil Empire) transmitter. You need to understand what you'll be feeding the IO-ATC8 electrically from the transmitter. It's not ohms. Let's lay it out: 0 F = 4 mA 300 F = 20 mA The IO-ATC8 is an A/D (analog to digital) converter that produces a number to the PLC based on it's input. You said you understand it's 14 bit, but do you know what that means? Let's lay that out, too: 0 mA = 0 counts to PLC 20 mA = all 14 bits on = 2^14 = 16384 counts to the PLC So your transmitter starts at 4 mA. This means at 0 F the IO module will return (4/20*16384) = 3276.8 counts, which it will round to 3277. At 300 F it will return 16384 counts. Read the Help on the LINEAR block, which includes some fun diagrams under the subtopic "Linearizing Analog I/O Values" So you set your linear block up like this: X1 = 3277 (point 1 input) Y1 = 0 (point 1 output) X2 = 16384 (point 2 input) Y2 = 300 (point 2 output) Map X to the register assigned to the channel on your IO module and Y to whatever MI you want to use for the output. If you still need help post your program. Joe T.
  2. 1 point
    You need something with a DC output compatible with what the PLC is looking for. These are the ones I use (full disclosure: and sell as a distributor)- http://www.dwyer-inst.com/Product/ProcessControl/CurrentTransformers-Switches/SeriesCCT60-70 Joe T.
  3. 1 point
    Please post the make and model of the CT. A link to a data sheet would be even better. Joe T.
  4. 1 point
    Agree with Gabriel. Also, it is possible that you have damaged something by not looking into all the parameters in the first place before connecting AC to something that is DC. This may account for the fluctuations you experience with the tester. You should be using the final CT product in your testing, not something that is different.....it's not much of a durability test if it isn't the product you're going to be using. Finally, ensure that you have all the wiring as recommended in the install literature. cheers, Aus
  5. 1 point
    I suspect you´re using a CT with AC volts output. Analog input is only DC, 0 ... 10 Vdc range, then you need a converter from AC Volt to DC Volt.
  6. 1 point
    Look in the Help for the Slave Address definition table. Timer presets start at C000 hex, and timer currents start at D000 hex and are 32 bit words. For T35 preset, try address hex C023 (decimal 49187). Joe T.
  7. 1 point
    Those would be the Visilogic function blocks. As you've already done, read the data from the device into a UINT32 tag. For testing I made one called "Read Data" that I could simulate, and a tag called "Conv Value" to hold the swapped bytes. The data will land in a REAL called "Converted". In UniStreamSpeak- 1. Copy the data you read from the device to the working tag and Swap the bytes using "Logic->Swap Single Tag Bytes" with Swap Type.ABCD_CDAB. 2. Copy the swapped data to a 4 byte BUFFER array type so you can manipulate the memory directly. Mine is "Conv Buffer[4]". 3. Use "Buffer Tools->Copy Tag to Buffer" to get the "Conv Value" data into the buffer tag and "Copy Buffer to Tag" to get it from the buffer to the REAL "Converted". There you go. Sorry it doesn't have all the digits you're looking for. If you need to convert several values write a UDFB to move the data into this logic with a pointer. Joe T.
  8. 1 point
    Hi chand345, Please provide TC connection diagram and snapshot of module configuration. This will help to better understand your setup. B.R.
  9. 1 point
    Moved to the correct forum.
  10. 1 point
    Hi, I used next link: https://www.h-schmidt.net/FloatConverter/IEEE754.html Result is 0x3e18a71e, as you have. Now you have to swap 0x3e18a71e to 0xa71e3e18 and use "Vector->Use Offset->Copy Memory" to copy ML/DW to MF. Than MF should show right number. Update us if it is working for you.
  11. 1 point
    In revisiting this after some zzzzz, also don't forget that Modbus addressing starts at 1, whereas Vision starts at 0. Sometimes you have to allow for this "difference of 1" when specifying the addresses. It depends on how the slave is set up....some also use the Vision style. Easy enough to find out for sure once you actually get a successful connection. Also, you have fallen into the trap of counts starting with 0...... MI4000-MI4027 is actually 28 MIs. cheers, Aus
  12. 1 point
    I'm only looking quickly and might miss something, but SB2 in your third rung is only calling the actual read on power up. You need this to be an actual call from other parts of your program, whenever you want it to happen. Would be nice to see the actual settings in Com Init 2. And don't use PLC Net ID, especially 0. If you look at the dropdowns that then happen, you will find preset determinations of what they do. Instead, do a direct store into SI8 of whatever unit ID number you want the plc to be. For Modbus I generally make the master "2". This allows for some later additions to a network that might default to 0 or 1. Your other understandings seem good enough, but no doubt I have missed something somewhere. Try my suggestions and see how you go. cheers, Aus
  13. 1 point
    Hi Charalambos, Please publish here content of 2 sequential MIs you read from meter in HEX and tell us what number it should show. *Read it from meter display, if possible. Having this information it is simple to negotiate if pairs of Bytes should be swapped or Bytes should be arranged in some order. AABB CCDD -> CCDD AABB B.R.
  14. 1 point
    Justin, Thank you for posting your code with your question. For starters, download the examples and take a look at them. Also look at the Help under Contents->Tags->Data Types. I've looked at your code and have a couple of suggestions- 1. Your tag names are way too long - you can't easily see what you're doing in the code and selecting them when you drop a contact becomes cumbersome. I know UniStream allows these long names but the Creators didn't give us a method of displaying more text on the display so it's easy to get lost with overly verbose names. 2. Similarly, use short names in the "Alias Name" in the IO tags tab. "URB Adapter1_O..." means nothing. I see you have three four output modules, so I'd suggest "Out1" to "Out12" as I don't know what these really are. The alias tag is set at the bit level, and you can use that name when writing your code. 3. An easy thing to be confused about is thinking that timer function blocks act the same as a contact themselves. They do not. A timer is an object that has .Preset, .Current, and .Out properties. The .Out is what you assign to your contact elsewhere in your logic. 4. You do understand that a TE timer is a pulse, right? Usually people use TD (delay) timers. Always start a TE with a positive transitional, unless you want it to keep pulsing. I hacked on the first few rungs of your code, renaming things per the above suggestions for the East Lane DDA In. You'll see I shortened the tag names considerably and aliased the outputs. Let us know what further questions you have. Joe T. P.S. - You may want to ask your local friendly distributor to help with some initial training on the product. I do this for my people. EIDSpeedLanes_modified1 JT.ulpr
  15. 1 point
    Actually, it's not. According to the Unitronics Help under Contents->Tags->Data Types So that leaves me to believe you may have a byte order problem, which is not unusual in reading 32 bit data from a Modbus device. I'm looking into if it's possible to read the data into a UINT32, swap bytes, and then convert to Real. Otherwise someone at Support may be able to help. Joe T.
  16. 1 point
    Send your request to support@unitronics.com and let us know what they answer. Joe T.
  17. 1 point
    I don't know definitively on the UniStream, but the Modbus command to read float registers is the same as the one to read holding registers (3). Have you tried reading the value from the meter to a Real type tag? Joe T.
  18. 1 point
    And the final follow-on to all of this number talk. At first glance the calculator is a useful thing just to get your head around how Linearisation works. But it does have a "higher purpose" and that's why I did it. In the theoretical world, all 4-20 sensors work perfectly on those numbers mentioned. But in the real world, sensors, the plc's input or both can be slightly off. If it is a simple linear difference over the entire span, then a + or - amount to the result is all that is needed to get complete accuracy. However, if the span itself has some innate error, the calculator lets you play with numbers very easily to get the best match to adjust things. In all the sensors I use, many of my linearisations are NOT set at the numbers above, they have small variations to correct for this error. My "need no adjustment at all" percentage is probably 25% of the sensors in use. How critical your reading needs to be is an important factor in whether to play with this or not. In my case I have to have all temperature sensors perfectly matched to a master device, otherwise I can get control conflicts. In other situations this is not strictly necessary. cheers, Aus
  19. 1 point
    Ah, sorry, I misunderstood.
  20. 1 point
    I always tell my guys that get confused, "to a computer, zero is a much a number as one is, only people think zero means nothing"
  21. 1 point
    It's 16383. There are 2^14 counts, but it starts at zero, so the highest number is 2^14-1 (all 14 bits on would be 2^14-1, or 16383). This is what goes into your linearization block, though you would likely never notice it in the real world if your linearization was off by 1 part in 16384.
  22. 1 point
    As I was writing my answer, Joe's has popped up and says it all. One thing I might add is to go this topic and get the calculator, which might help you understand some of the principles a little easier. cheers, Aus
  23. 1 point
    Hi all, This Topic will list items that are worth an easy find, but are not quite "pinnable" on their own. If we pin everything that is useful, it will all become one big mess on page 1 (or bigger!). I suggest that if you want something added to the list, contact myself or another mod to have them edit it into this existing list that I see as having carefully considered updating. To save space, only links will be shown, not full previews, with the Header listed before the link. HSC resets DW counter after power-cut http://forum.unitronics.com/topic/6118-hsc-resets-dw-counter-to-after-power-cut/ Multi Monitor (things disappearing) Issue http://forum.unitronics.com/topic/5827-multi-monitor-issue/ cheers, Aus
  24. 1 point
    Copy DW50 into some other location every scan. Then copy back at startup.
  25. 1 point
    To format the number in the data table, select one of the actual data elements and right-click- Choose Format, which opens the Number Format dialog- + 1 on the Row Height adjustment.... Joe T.
  26. 1 point
    Every time I got corrupted file, it was because I had to add new font because default fonts can't display č. I learned this lesson once, but still remind myself from time to time. Did you ever lose any critical data?
  27. 1 point
    Same here Flex..... I save to a new file name daily, appending the file name with the days date, such as; 1210 formax 03 20 19.vlp If I do a lot of changes I will sometimes add an A, B, C after the date and have multiple saves in a day, plus I add the PLC model to the name also. So far as storage, I work off a USB hard drive, and try to be diligent about copying my files to my C drive and a network drive. And as in other recent discussions, I'll save my version number somewhere on a display; v032019
  28. 1 point
    A step by step guide to installing a project via SD Card on enhanced series controllers. SD Card App Install Procedure.pdf
  29. 1 point
    Hello, I am having an issue with intermittant connection to a remote PLC. The setup is as follows: Server has a VPN connection to a GSM router on site. This is connected via ethernet to the PLC. What I have found: I lose the ability to do a socket ping to the PLC on 20256. When I lose this ability, I also lose the ability to pull telemetry data off the PLC from the registers. (makes sense, they use the same port). I am doing this ping test from the local router on site, over the VPN. The issue is therefore not with the VPN itself, but the connection between the router and the PLC. The ladder logic code that manages the connection is attached. Can you see where I have gone wrong? How can I increase the robustness? Additionally, can you suggest timeout/keepalive settings that would help? At the moment, I can regain the connection by restarting the router (set to a automatic timed restart at the moment). Additionally, I have noticed more than once that if I go into the socket parameter screen on the PLC, it has sprung back into life. (maybe coincidence?) Many thanks in advance for any help!
  30. 1 point
    Is there any solution to this problem.Im getting it as well. I cannot load a project and this window pops up with this description of a subscript. I have uninstalled the software and reloaded it again but i still get this problem showing up.
  • Create New...