Jump to content


Popular Content

Showing content with the highest reputation since 12/09/2018 in all areas

  1. 2 points
    @chay Seriously, dude, you are going to catch nothing but grief asking questions like this on the forum. This forum is maintained by unpaid volunteers. If somebody posts code showing that they have put the time in and tried to learn themselves we will bend over backwards trying to help them. Put the time in yourself. Then ask questions. Joe T.
  2. 2 points
    LOL!!! I love you guys. If I ever win the lottery, I'm flying you all to headquarters for beer and burgers! Here is an even older logo...
  3. 2 points
    Something tells me that @Joe Tauser's troubleshooting face is the same as his regular one.
  4. 1 point
    Hi Elmajestin, You have to store Data Table to SD card, then you can send this file as email attachment. B.R.
  5. 1 point
    Change the address to 0. Here's why- Modbus holding register addresses are designated as 4xxxx. When you enter the address in UniStream as above, the "4" is implied. In the original Modbus specification, the register count starts at 40001, which is the first holding register. Unitronics reads the actual memory of the device, which starts at 0. Different manufacturers use different conventions for Modbus, either 1 or 0 based. It looks like yours is using 1, so you have to subtract 1 from each address. As I've said before, this is all confusing to a new user. Verify your port parameters - 8N2 is rather unusual. It's usually 8N1. Did you define your tag "Status Generator" as a 16 element array? Joe T.
  6. 1 point
    Hi! I would really like to be able to sort data tables! That will be an excellent upgrade. As @JPowell said: Another great thing, is to have the possiblity to change Web Server language and also the language of the UniApps in the HMI. Thanks!
  7. 1 point
    I have found these IP addresses to use, -- current using in a test program - works from SMTP2GO : North America: or Europe: or also check out this link : https://support.smtp2go.com/hc/en-gb/articles/227835308-Worldwide-Server-Locations-And-Email-Routing DanT
  8. 1 point
    Hi, On the 15 August we got a few complaints that customers get this run time error 5 when they are trying to download application via U90Ladder. We investigated more and found that this is an issue caused by the latest Microsoft update. In order to solve this issue until Microsoft will release new update - Please try to uninstall the update via "New installed updates" or roll back before the update. Please see below link to Microsoft update and known issues: https://support.microsoft.com/en-us/help/4512508/windows-10-update-kb4512508 *For other version of Windows Microsoft KB article number will be different. Article can be found in the below link: https://support.unitronics.com/index.php?/selfhelp/view-article/u90-ladder-and-runtime-error-5 Best Regards,
  9. 1 point
    Just for clarity to everyone following this saga. The EXL-CAB295 is for the EX-A2X, NOT the EX-A1!
  10. 1 point
    Open favorites (if possible) and make snapshot to save for feature reference. Close Unitronics applications/programs. Go to "C:\Program Files (x86)\Common Files\Unitronics" and rename "Eth_Favorites.evb" file to "Eth_Favorites.evb.old". Create favorites again. It should work. *Favorites file somehow damaged.
  11. 1 point
    Update firmware before first program download
  12. 1 point
    I've recently been teaching myself Unilogic after using Visilogic for about a year and the thing that sticks out to me the most is that while Unilogic definitely looks more "modern" the UI is absolutely horrible and wastes so much space. To the point where I'm having issues using the program on a single screen compared to Visilogic's much more condensed and less cluttered style. Is there a theme or setting that I'm missing that could lower the entire UI scale or something along those lines?
  13. 1 point
    Just a few comments regarding the Ewon Cosy VPN router and its integration with Unistream controllers. I have used the Cosy to remotely connect to a Unistream 10.4" HMI via VNC through internet and it works great. I also used the NAT 1:1 function, so that the user won't need to use internet when connected in the same LAN. Connection is 100% reliable and response is relatively quick, there is a bit of lag but it is fairly acceptable. It takes approx. 15 min to set it up and get it working, only very basic networking knowledge needed. Connection is achieved via Ewon's M2WEB cloud service and requires to have a valid TALK2M account. Unit price for a COSY 131 is quite high (490 Euro), but in my opinion it is worth as connection security is number 1 priority.
  14. 1 point
    #1 - Do NOT place multiple logic threads in a single ladder rung. #2 - It appears that you are not using the Timer correctly. Here is the Help entry for the On Delay Timer you are using. You must use the Out bit. If you are still not understanding, ask a specific question and we will help you.
  15. 1 point
    For what you want I wouldn't be going to too much trouble. The unit uses about 12W max so I'd find yourself a little enclosure like my pic I found. Plastic lids are very easy to work with, and if you don't have precise machinery to machine the hole, you can easily do it carefully with a jigsaw. Put some duct tape on where you're cutting to protect the surface that will remain. For power I'd simply use an external plug pack, and run the lead through a nylon gland on the side of the box. Same goes for your ethernet connection, use a gland big enough to let you run a standard ready made patch lead through of the right length. Your location will dictate where you get this stuff, all of it can normally be found at any decent electricians' supplies store, or a hobby electronics type place. cheers, Aus
  16. 1 point
    Did you look at the Help file? The example is for an older PLC, but the basics are the same. When you place the Timer HMI element on the screen, link to the timer operand you want, check the Preset box, and the Keypad Entry box. Also, set up the Format and other niceties for your HMI element. That's all there is.
  17. 1 point
    Hi all, I'm sure lots of you know about these things that make life much easier using com ports. But in case you don't, here are 2 links to different sources amongst many: https://www.aliexpress.com/i/32860271754.html https://www.amazon.com/fosa-Ethernet-Terminal-Splitter-Connector/dp/B07D355PDX cheers, Aus
  18. 1 point
    Please post the make and model of the CT. A link to a data sheet would be even better. Joe T.
  19. 1 point
    I like your way, too! It demonstrates that you can think in terms of bits, which are the foundation of all the other data types. There's a cat being skinned multiple ways somewhere.... 😁 Joe T.
  20. 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
  21. 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
  22. 1 point
    Send your request to support@unitronics.com and let us know what they answer. Joe T.
  23. 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.
  24. 1 point
    That would be logically impossible. You're asking the PLC to log to the file - it can't be read-only if you want to write to it. You can always change the file attribute after you remove the SD card from the PLC and transfer it to a PC.
  25. 1 point
    I have found the Vect. Linearization block most useful in Visilogic for dealing with applications involving temperature. For example, how do you get rid of that pesky decimal point on a whole thermocouple module in one fell swoop? Here's how- So when I'm translating this application to UniStream I discover this block is missing. The Help on the UniLogic describes how an array can be passed as a parameter, but it doesn't mention that only one element of the array can be passed. I spent a fair amount of time trying to specify my thermocouple structure as the input argument to the Linearize block to no avail and eventually contacted support. No, you can't pass a whole array. So having learned my lesson from the PWM block I went looking in the examples. Sure enough, one of the Creators had wisely made an example app containing the "Linearize Array" UDFB, which is set up to handle a 16 element array. Make sure all your variable structures and data types match when you're using any UDFB. On top of removing the decimal, my customer made the totally unreasonable request of being able to convert all the temperatures from F to C from a button on the screen. Fahrenheit rules the world! No, wait a minute, it doesn't. Anyway, here's what I came up with using the UDFB- Remove the decimal. Notice that the convert F to C block does it automatically- Now the first time I did this, I realized that all the user setpoints were still in the units entered. So we have to convert all those, too. I do like how the input parameters are easily recognizable and editable using the UDFB. And good times where had by all. Joe T. Linearize Array.ulle
  26. 1 point
    It's totally this. It helps you organize the subroutines into subcategories. I rarely use modules (other than the Main module, of course), but once a program gets extremely complex, grouping subroutines into modules can make program development and troubleshooting a bit easier. The PLC doesn't care.
  27. 1 point
    Sounds like you are just interested in data transfer between all the PLCs, not handshaking. There are many ways to do this. I normally use MODBUS TCP when transferring data between PLCs over Ethernet. You need to assign one or more PLCs as the MODBUS Master. There are multiple ways to do this as well, but one way that allows all 4 PLC programs to be nearly identical would be to make PLC 1 Master to PLC 2, PLC 2 Master to PLC 3, PLC 3 Master to PLC 4, and PLC 4 Master to PLC 1. This daisy chains all the data around to all the PLCs. The drawback is if one of the PLCs goes down, then the chain is broken. Another option is to Make PLC 1 the Master to PLCs 2-4. PLC 1 would collect all the data and distribute it to the other 3 PLCs.
  28. 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?
  29. 1 point
    I agree with JohnR, but if I knew any English I wouldn't spend my day talking to computers.
  30. 1 point
    Another meaning. Maybe it's "Push this button, stupid".
  31. 1 point
    Hi Nahum, Thanks for the advice. I also did some testing using a PC based Modbus master simulator (ModScan) and confirmed the situation as well. I also found that there was an offset of 1 between the internal UniLogic address value (in the Modbus Slave configuration) and the external Modbus address. For example coil register 9472 appears as 09473 (Read Coils (1)) or 19473 (Read Discrete Inputs (2)) I think it would be a valuable addition to have an explanation of this in the UniLogic help file under Modbus Slave. For example: Coil values can be read using either Read Coils (1) or Read Discrete Inputs (2). For example coil address 4444 can be accessed as either 04445 (Read Coils (1)) or 14445 (Read Discrete Inputs (2)) Register values can be read using either Read Holding Registers (3) or Read Inputs Registers (4). For example Register address 1111 can be read as either 41112 (Read Holding Registers (3)) or 31112 (Read Inputs Registers (4)) Maybe add a configurable offset value to UniLogic, so this offset can be corrected in future applications, without destroying backward compatibility?? It has always been a common "gotcha" with Modbus, to discover who counts from "0" and who counts from "1". Thanks, Simon
  32. 1 point
    hi...if the DTI can be sorted from the beginning (when this is populated) you can check the valuo of the row "0" if this value is less of the row that you have to insert increase a variable to check the next row...do so on...when the result is positive (the new value is less on the read row) you can use the "insert row" UDFB...and reset the variable to check the row. I hope that my explaination is clear.
  33. 1 point
    On the screen issue, in theory it can't happen with Visi not letting you do it, but sometimes it does and needs an extra pixel clearance on what Visi lets you do as minimum etc. I know this is a bit convoluted explain, but its the best I can do! cheers, Aus
  34. 1 point
    Hi All I purchased this device on ebay. The model number is "VAP11G Bridge Cable Convert RJ45" (probably many alternatives available) Cost around €15.00 Works a treat on unistream. Plug in the ethernet and power via the USB port. PLC can now be programmed with the panel door closed over wifi. Should also work with Vision but you would need a power bank or 5v power supply.
  35. 1 point
    Hi, I have confirmed that compiling Remote Operator so it would target .Net framework 4.0, while .Net 4.8 is installed fixes the problem. Luckily, there is a workaround that can help you run Remote Operator with .Net Framework 4.0 and newer without getting a new Exe. Go to where Remote Operator is installed, usually at: C:\Program Files (x86)\Unitronics\Remote Operator\ You should find a file called: Remote Operator.exe.config Open this file with Notepad or Notepad++ while it runs as Administrator (since you are going to change a file located in Program Files, and Windows will not let you do that unless the change is being done by a program that has Admin rights). Just replace the entire content of that file (it should be a text file in an XML format, so make sure you don't accidentally open the exe file instead), and save the file. <?xml version="1.0"?> <configuration> <configSections> <sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=, Culture=neutral, PublicKeyToken=b77a5c561934e089"> <section name="Remote_Operator.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false"/> </sectionGroup> </configSections> <appSettings> <add key="EnableLogger" value="False"/> </appSettings> <runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <probing privatePath="Libraries;StartupLib"/> </assemblyBinding> </runtime> <userSettings> <Remote_Operator.Properties.Settings> <setting name="RdpVncMode" serializeAs="String"> <value>False</value> </setting> <setting name="AutoRun" serializeAs="String"> <value>False</value> </setting> <setting name="ProjectLoadOption" serializeAs="String"> <value/> </setting> <setting name="SelectedProjectToLoad" serializeAs="String"> <value/> </setting> <setting name="StartWithWindows" serializeAs="String"> <value>False</value> </setting> <setting name="FullScreenMode" serializeAs="String"> <value>False</value> </setting> <setting name="AutoRefreshInterval" serializeAs="String"> <value>100</value> </setting> </Remote_Operator.Properties.Settings> </userSettings> <startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup></configuration> The line that was added to the config is just after the </userSettings> and before the </configuration>. It's the: <startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup> which tells it to target .Net framework 4. Please tell me if it helped. Thanks.
  36. 1 point
    You are not the only one that faced this problem, and I tried looking for the cause for this problem few weeks ago, but didn't find much of an information about it (since it was before December 26th). Your link at least explains the cause. Now that I know what causing it, then I can try few solutions, and see if any of them works. I hope that Microsoft will release a fix for the .Net framework that will solve this issue. Remote Operator uses .Net framework 3.5. I have confirmed that I can also reproduce it here with Windows 10 1809. Installing .Net framework 4.8 did not solve the problem. The link says that it's a bug with .Net framework 4.7.2, but I think it's a bug in all .Net Frameworks up until 4.7.2 (including). In this case, I'm not sure if Microsoft will release a fix for .Net 3.5 I saw that Microsoft release a Windows update named KB4480056, which updates .Net framework 4.7.2 and .Net 3.5, but I tested it, and it doesn't fix this problem (it's just a security issue fix, as I understand). In that case, I'll have to re-compile Remote Operator with .Net 4.0, so it will target .Net framework 4.8 when installed, and still be able to run on Windows XP. I'll hope it will work. I can't say when it will be done and when I'll be able to test it.
  37. 1 point
    By the way... in future... Do not rename the main display when you start a new project. Never wipe the main display out of the project - this leads to incorrect order of display on the screen. And this can not be fixed by creating a new main display. This feature was studied by my students. After wiping the main display, they were not able to restore the normal sequence of opening display at startup and must to completely redesign the project from an empty project. P.S. In your project this isue not appear.
  38. 1 point
    Well...you could always do a test of more than 32 on your testbench and see if it works! But in this case I think it will be correct. However, I get the feeling that what you are essentially doing is a BAS. Futher to my suggestions, you could retain all your current infrastructure by having my "sub-masters" plcs on each building level/major location, gathering data via the existing 485 network on that level, then holding that collated data until read by the Unistream via another 485 port on the subs. This way you would not need significant changes to the exisiting wiring topology. It would almost be a case of a few cuts and splices on each building level. (And it sounds like a bit of a hodgepodge wiring setup anyway, with the topology being "non-standard"! 🤣 It is surprising how tolerant 485 can be at times. I've seen all sorts of odd connections that work. And I've also seen the ones that are perfect and have issues! Go figure. ) The only real difference would be the need to have the collating plcs having 2 x 485 ports, the ability to poll all the other the little plcs on that level and collate that data ready for transmission to Earth Central. Edit PS.....And something else is a Winner, you lose the need for so many 02RSCs. Hmmmm!!! That might pay for the different Subs! cheers, Aus
  39. 1 point
    The third post in this thread provided your answer which you either missed, ignored, or didn't understand. To be clear, NEVER call an HMI screen with a direct contact. You MUST use a transition contact - always. Also, please restrict your ladder rungs to only a single logic thread. One logic thread = one ladder rung. Do not stack them up. They will often work, but it can be unpredictable. Avoid conditional subroutine calls. Avoid HMI screen calls or subroutine calls with other logic in a ladder rung (i.e. other coils or FBs).
  40. 1 point
    Hello, you have a version of the system higher than 1.23.25? Before version 1.23.25 all HID devices have logged in as a keyboard! I use the LS2208 scanner and it works ok. For inspiration I send some data. Barcodereader.pdf
  41. 1 point
    I tested it with a struct, and it works. Can you try to "Build-All" and then download the project to the PLC? (It should say that the project is identical, if you have not changed any thing). If the project was downloaded (meaning, no identical project message), then check if the Reset Numeric now works correctly.
  42. 1 point
    I'm not sure if this will help but it works to time stamp the entries in our DB.
  43. 1 point
    @Saragani FIXED! Thank you very much for this, I tested the file and it works perfectly. See the snapshot, one is with the file, the other is not. What was the bug? running out of memory somewhere? Again, thank you all for your help and Saragani for fixing the problem. Cheers!
  44. 1 point
    @stembera, the problem was also reported here: If the issue still reproduces on your computer, can you please check it with the DLL on that thread, and update me? Thanks
  45. 1 point
    I know this takes us out of the realm of Unitronics-Land, but there is company called AdvanceHMI that offers free software to build an HMI in VB, and run it on a PC/Tablet/industrial Panel PC. It includes drivers for different flavors of A-B comms as well as others. https://www.advancedhmi.com/ JohnR
  46. 1 point
    I've used Motorola (bought by Zebra) with Vision products and had good luck. Haven't tried this with UniStream yet. Joe T.
  47. 1 point
    Is this another solution? Just learned to use the copy byte function in the logic menu.
  48. 1 point
    Hi MattP_Mac, 1.Make ping from your PC to PLC IP. Does PLC answers? 2.Open DOS prompt at your PC and enter "telnet 20256". DOS display will blink, clean and stay black. Is this what you see? 3.Enter PLC info mode and check Socket 1 status. Is it connected? Share test results. B.R.
  49. 1 point
    Hello, SAMBA doesn't have the same memory specification like V350/V570. As you understand SAMBA is 1/10 memory capabilities compare to V350. Samba is especially suited for small machine applications. Like Jazz, Samba is designed to give an optimal price/performance for low-end PLC and even to Smart Relay customers. These are OEMs who make small machines that have low I/O requirements. Samba is a step up for them – allowing OEMs to offer a color touch screen instead of their current text display. Most of the memory is occupied by the HMI variables, HMI variables with more properties can take more memory. Please note that converting projects from V350/V570 to SAMBA may cause to incompatibilities between operands. I hope it helps…
  50. 1 point
    Hi, this option was made in order to remove the Splash Screen Fade in/out. With RDP (Not in VNC or Logmein), each time a frame need to be rendered, it will send it to client and only then will render the next frame. This caused the splash screen to take forever since each time the opacity got changed, instead of taking like 20ms or 100ms for the next opacity value to show, it had to wait for the client to get the splash screen image and only then change the opacity. This option only removes the fade-in/out.
  • Create New...