Jump to content


Popular Content

Showing content with the highest reputation since 08/05/2010 in all areas

  1. 3 points
    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.
  2. 3 points
    Ohh no, the old usb issues! 1 Perhaps Win 7 is now doing the W10 trick of updating drivers to whatever Msoft deems best, regardless of what the user wants/knows. I'm still on 7 and haven't encountered this yet, but I very carefully look at every update that is offered and find what it is doing. The immediate suggestion is if you have System Restore on, you should roll back to before the updates and see what happens. 2 I have had instances where a usb cable has suddenly broken a line internally. I'm assuming you have tried another known good cable in your attempts? In my instances the error messages you're getting were similar..."unknown but I know something has been plugged in." Murphy's law says that this failure is going to happen just after an update that will appear to be the culprit! 3 Have a good read of this entire discussion: In particular note the program I recommend: http://www.pro-it-education.de/software/deviceremover/ Edit: I have discovered this link doesn't work anymore. Can now be found here: http://www.softpedia.com/get/System/System-Miscellaneous/Device-Remover.shtml I have found it incredibly useful for removing dud drivers Windows squirrels away. If you haven't had luck doing 1 & 2, try getting rid of everything using it and start again from known good drivers. ONLY install them. 4 I am finding more and more devices that used to be serial connections, but are now usb in the same looking body. But lo and behold they have just added a prolific/fake chip onto the pcb so that it "looks" like the unit is usb to the user. It is essentially still serial and the onboard chip lets them get into it if they don't have serial connections available, like modern stuff infuriatingly doesn't. I have been exceptionally careful about what I allow to happen during the first insertion of any device that likely falls into this description. It is a minefield. Tread carefully! cheers, Aus
  3. 3 points
    Set the Border Thickness to 0, and the Background Fill to transparent (by either choosing the transparent color, at the bottom left corner of the Stardard color, or by entering 00FFFFFF in the Advanced Color)
  4. 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.
  5. 2 points
    Something tells me that @Joe Tauser's troubleshooting face is the same as his regular one.
  6. 2 points
    This may sound insignificant, but I want to be able to be able to add color to the comments to make it easier to see when scanning down through longer programs. You can color the side bar of the rungs but not the comments. Thanks Visilogic Team! Paul
  7. 2 points
    Hi, You can create a kind of "message box" using a rectangle and some variables on top of it. configure to each one of them Visibility bit. then when you wish to show this message box set the visibility on. Once the operator chose his option you can reset the bit and the message box will disappear. you can do the same with custom control.
  8. 2 points
    Thank you for posting. We appreciate it! The problem is you are calling the all the Modbus reads with the same trigger and you're not checking to see if the Modbus task is busy. When you call a Modbus read block it actually spins off a separate process that takes a while to complete. It also really helps to put a little breathing room via timer between reads. I've modified your code to make a state machine cycle through the reads in order and slow it down to let the read function reset. I know the examples show chaining read blocks one after another, but my experience has been this doesn't work. You're probably going to have to update your version of Visilogic to open my file. You can fiddle with the delay times to make it go faster. You'll find that when you set them too low the blocks will hang up. Let us know how it works. Joe T. Thermofisher JT.vlp
  9. 2 points
    OK. Still confusion. I'm assuming you are talking about having your push button "1" connected to Digital Input (DI) 1. Then your button 2 on DI 2 and so on. This will use many of the inputs, which is OK if you have them to spare. You saying "port" in some ways means the serial connection socket, hence my question. There are other ways of doing this, but......... Before I go any further, have you considered using a cheap touch screen computer running Remote Operator, directly linked to the PLC? In some ways this will be the easiest method of the lot as you can use the inbuilt number entry methods in Visilogic etc, but via a touch screen instead of the membrane keys. You may end in similar costs by the time you cost out keypads etc doing it the other way. You can find RO here to trial it: http://unitronicsplc.com/Download/SoftwareUtilities/Remote Operator V1.0.67.zip In the same thinking, maybe go up a PLC model to one that has a touchscreen as standard? cheers, Aus
  10. 2 points
    Hello Ofir, The addition of Timout and Retries in the default MODBUS operations will be a large help. I Often need the ability to Auto-Detect Slaves in a network - which is why I need the ability to change slave ID's. The Addresses could be from 1-255, and I don't want to have to set up 255 different combinations of possible reads(Last I knew, you could only even set up 32 slaves as a time anyway). I also need to often read multiple different register locations/lengths while switching between slaves - so i am really limited on this by the simple mode, and must use the Advanced Modbus functions. Thanks again for a great software and hardware. I'm sure these abilities will be introduced again eventually. -Matt
  11. 2 points
    Hello there :-) The Help file for UniLogic does contain information on how to use passwords to ensure security--check out the attached screen capture.
  12. 2 points
    I need to interface a Unistream with an Omron PLC. Specifically, the OMRON SYSMAC CJ2M CPU31. Omron requires an EDS file for all Ethernet/IP connections and a generic EDS file we found does not seem to work. The Unistream is configured as an adapter and the Omron is configured as the scanner. During testing, I did attempt to switch roles and have the Unistream as the Scanner and the Omron as the adapter, but neither configuration seemed to work. The error message in the Omron indicates a byte count issue; however, with the assistance of an Omron integrator, we confirmed that the number of bytes in and out of the Omron is correct.
  13. 2 points
    Thanks Ofir this is good news. For the SD Card Explorer alternative that I looked for I think I found an elegant solution. No need to install any software like FTP client what so ever. I found that Windows File Explorer can use as BI two-way FTP Client. First Unistream should be defined as FTP server with username, password and read-only option should remain unchecked. Then Using Windows File Explorer (not internet explorer) type the address:e.g: Type in username and password in the pop-up window and the SD Cars content will show with the ability to drag and drop files in both direction. The difference between any Internet browser and windows File Explorer is that the later support two way file transfer. For quick access into the SD card files and folders and being able to make shortcut on the desktop or anywhere else follow this link http://windows.microsoft.com/en-us/windows/work-with-files-ftp-site#1TC=windows-7 Hope anybody will find it useful and I will be happy for any comments Ofer
  14. 2 points
    I've passed your requests to The People In Charge--thanks :-)
  15. 2 points
    Off course there is no memory for local tags... they are local. Consider the pseudo code (assume that variables that are declared have a value of 0 and not an 'Undefined' value) public int Add(int a, int { int c; c = a + b; return c; } Now, you first call it with: Add (2, 3); the first time you call Add, c would have the value of 0, and then it gets the value of 2+3 ==> 5 Now you call it again, like Add(3, 5); Do you expect that 'c' would still contain the value of 3? It is being re-declared and it has the value of 0 again (and then it gets the value of 3 + 5 ==> 8) The variable 'c' is being declared on the stack, since it is a local variable. Once you go out of the function, it is gone (this is why it is local... It leaves within the scope of the function. And if Add would have a recursion (meaning it calls itself again and again, until a certain condition is true), then each call of the function will have it's own 'c' variable. Because of the fact that local variables are lost when you leave the function, you can't also have a positive or negative transition on the bits. The reason why you can't do a positive or negative transition on Function-In/Function-Out bits is because on each call you can pass a different bit (so you can't correctly detect a Rise or Fall). If you do want to latch a bit inside a UDFB, then it must be passed by Ref, meaning, it must a be a global bit which is passed by either as Function-Out, or Array of Bits / Strcut that contains a bit that is passed as Function-In (And with this way, you can pass a different bit on each time), or just work with a global bit.
  16. 2 points
    By the way, Cara, you guys should definitely develop a modest UDFB of this nature for us to use to wow customers and potential customers. Give it some thought.
  17. 2 points
    The EXF-RC15 is a stand-alone CANbus module. It works with either Unistream or the Vision series. You get your fastest response using a V1040 with a Snap-in Module where they are treated as local I/O. To get your 24 inputs use a V200-18-E62B, which has 30 digital inputs and 28 transistor outputs. Read the Help on the 1.25 ms Interrupt routine and the Immediate Input function block. Put those two together and you magically get 400 Hz response time on all your local inputs. Joe T.
  18. 2 points
    This post is not a question but rather a tale of pride and stupidity on my part. I hope to help someone in the future to not make the same mistakes I did. I recently tried to modify the Advanced Webserver to add Modbus IP communications. I decided to re-assign the sockets to my liking. I assigned Socket 0 to the webserver, Socket 1 back to PCOM, and Socket 3 to Modbus IP. After downloading the program serially I found the Webserver didn't work anymore and the PLC either rebooted or stopped completely with ladder error code 38 when i tried to go online via Ethernet. Oh, by the way, I also re-assigned the protocol for port 80 to HTTP when I made the new Socket init block. Talk about maddening. After several hours of trying every combination I sent the application to support and got Ryan's help. Final Conclusion: The Webserver app absolutely positively requires Socket 1 be initialized to protocol TCP_RAW, port 80. This exact configuration is required by the locked subroutines. To get online I initialized Socket 0 to TCP, port 20256, slave. I set Socket 3 to TCP, port 20257, Master for my Modbus IP communications. Everything works as it should now. Joe T.
  19. 2 points
    I'm guessing you want to display all this on the PLC screen. That's a bit more work. Two solutions come to mind- 1. Use the built-in Alarms function and configure all your events as "alarms" with no reset or acknowlege. The time-stamping and logging take care of themselves. The only downside is it will look hokey. 2. Use two tables - one stores all your event descriptions and an index pointer. When an event happens, look up the description with the index pointer and stuff it into a second table with a timestamp, bumping all the rows down and putting the newest event at row 0. Then build a screen that will display the table rows of ASCII strings of the time and the descripton. You could use the arrow keys to increment/decrement a pointer that will retrieve selected groups of rows and update your ASCII variables. It's really not as complicated as it sounds. Take a swing at it and let us know if you get stuck. Joe T.
  20. 1 point
    Swap the reset and set locations of update and set time in your shown 3rd rung? Why use so many set/resets in the first place? For me I always try to use the least possible, as expected sequencing often goes astray due to things changing in one scan. cheers, Aus
  21. 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,
  22. 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.
  23. 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?
  24. 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
  25. 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.
  26. 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).
  27. 1 point
    Items of note: - There are no subroutine calls. - You are still unnecessarily combining too much logic into a single ladder rung. - Your alarm comparisons should be "</=" or ">/=" instead of just "=", and perhaps should be latched. - You have multiple instances of comparison blocks with no coil following, so they do nothing.
  28. 1 point
    Perhaps the timeout and retries on the missing slave are upsetting whatever intervals you have set for the sequential reads from all the others. Carefully go through the total possible timing per read and ensure that you have allowed sufficient "overlap clearance". cheers, Aus
  29. 1 point
    Can of worms has been opened, Personally I like the warmth of it. Used to have a sacd player but they seem to have all but gone.
  30. 1 point
    Hi Gonzalo, I follow what you are trying to do, and appreciate the fact that you do have a true safety circuit, but I would still be concerned that by not using the safety circuit when making adjustments you could be putting the user in harms way.... I don't pretend to know exactly what you are controlling, or what hazards are present, but please be mindful of the users surroundings and what could happen........ Is there any stored energy (air, hyd, water), that you need to release before entering the area? If you are going to pursue this, I would at least make the "MCR" a keyed switch (and one that the key can't be removed in the Run position), and the user must have possession of the key while making adjustments. Regards, JohnR
  31. 1 point
    You may find this useful. Be aware that you cannot send emails through a server that requires encryption.
  32. 1 point
    I disregarded IP address range because of quote above. I guess that's a statement, although it does end with a question mark. I thought that address looked like Microsoft's "dummy" address. Any two devices on the same physical LAN and common subnet should be able to communicate. I didn't see or confirm the IP address the phone had obtained. 169.254.x.x is not an address pool I would expect to see in a DCHP router. It would be a good measure to put router, plc, and phone in a more traditional address pool like: 192.168.x.x or 10.0.x.x I have an app on my iphone called "ping lite" that runs IMCP ping command. Very helpful in determining if basic network communication is working between phone and other device (PLC in this case).
  33. 1 point
    RobertW: If you have specifics you can post on forum or call Unitronics support. Both helped me greatly when tranlslating a large program from Visilogic to UniLogic. If you are starting with Unilogic it may actually be easier, I really had to retrain my brain away from all the terminology and form of Visilogic. It's not bad once you get the hang of it. You have a powerful support team to assist you, be NOT afraid to use it Sir.
  34. 1 point
    Hi All I recently attended a Unitronics training workshop given by Ofir Levi. This was a one day course on Visilogic. It was a really well presented course provided at the level appropriate to the participants. Later in the week I had a problem with establishing a connection to a UNISTREAM PLC. Contacted support and Reuven in support took control of my PC and sorted it in minutes. While also explaining what was wrong. I am 25 years in the refrigeration service industry. We deal with many suppliers. The service provided by Unitronics is second to none. Just wanted to take a minute to show my appreciation for a great service and product. Regards Denis
  35. 1 point
    I believe I have found a solution On my own. NUM to ASCII, 4 bytes, presumably fitting into a single DW that the emailer uses to send out number in the 0 to 4,000 range. Will see how it does as time goes on. UPDATE: is working fine now. My texts received show gallons OF the last fill cycle (triggered by NTC contact linked to output that controls fill valve.
  36. 1 point
    You can use Modbus for Vision-Jazz communication. Jazz has only one Ethernet port but it can be configured for both Modbus and PC connection (only one active at a time). Put memory segments you need to read in sequence (MI0, MI1, MI2...). Contact support for additional help to make SCADA work with all PLCs, it must be something trivial that you overlooked. I always received fast and useful advice Unitronics support.
  37. 1 point
    Hi Kal, Go to VisiLogic help to see the RS232 pinout: The programming communication kit is RJ11 4 wire cable (standard 4 wire landline phone cable) and PC RS232 adapter P/N: MJ10-22-CS25. If you have other Unitronics products (Except JZ-PRG), you can use the same communicating kit. You can also make it on your own , please see the diagram in VisiLogic help.
  38. 1 point
    +1 on the MODBUS Mixed R/W feature in the Enhance Vision products. I use this function constantly and it is one of the best features that Unitronics offers that is unavailable elsewhere. I would love to see it implemented in the UniStream product.
  39. 1 point
    Hi Splathappy, IO Link is an extension to existing protocols. You could use an EthernetIP Field coupler that speaks IO Link to make it work. AXL E EIP IOL8 DI4 M12 6P From Phoenix Contact can make this happen for you. BTW IO Link is definitely something great to look at! Best Regards,
  40. 1 point
    If you have to deal with fluctuations from temperature affecting the system then PID may be the way to go. Fairly easy to work with the hardest part is fine tuning it for best performance, or at least good enough performance.
  41. 1 point
    Hi Flex I purchased this about 18 months ago in the hope it would eliminate the need to keep PLC's for testing. Many functions are not implemented and in the 18 months I have not seen any further updates from the original release. Recently the program has stopped working and I have not been able to get a response from their customer support. I don't think you will have any luck with multiple PLC communication as this will definitely not be supported. Many data table functions are not supported along with SD, password, float and webserver functions. Unless your program is relatively basic you may have difficulty in running it, and if this is the case you probably don't need a simulator. I would ask Unitronics to verify if this product is still being supported by the supplier and if not they should remove it from sale on their site. As I said there have been no updates since its release and no response from customer support I would avoid this. This is a pity as the program was the basis of a very useful product had it been completed. Regards Denis
  42. 1 point
    Many thanks, HigHTech. I got it working now. Paint.net works, but I didn't realize that you have to save the PNG as 32-bit. I was using 24-bit without realizing that the extra 8 bits is the transparency layer.
  43. 1 point
    There isn't a direct tag that indicates which screen was selected previously, but you could also implement logic that each time a screen jump is performed a bit tag is set indicating which screen was just implemented. For example: On Display 1, I press a button that performs 2 actions. The first action is to jump to screen 2, the second action is to set a bit tag with the description "Screen Jump from Display 1 Performed". This bit tag can then be used as necessary to indicate that a jump was performed from display 1. It can then be reset as necessary within the logic.
  44. 1 point
    Since the values within the controller will continuously increment you can use the Modulo function. This function will divide by a certain value (360) and will only return the remainder. This will allow you to always have values from 1-360 to use within the logic. You can then use is various comparison statements within the logic to trigger any desired functions, specifically the Within Range function block. This can be configured to only pass power when the encoder input is between given values, for example only between 1-10 deg power coil 1.
  45. 1 point
    Apologies in advance if my opening line was a little too "plain" and seen as harsh or disrespectful. It was a bit of a nerd moment (Sheldon style), and I of course have great respect for Joe's and Alexander's abilities and knowledge.
  46. 1 point
    Yes, my Main subroutine never has any code in it other than calls to other subroutines. One of the very first is the call to the "Inputs" subroutines, and one of the very last is the "Outputs" subroutine. I would say first that you should specify what you regard as an issue. But beyond that, I would contend that there are certain caveats with positive and negative transitions that in fact make buffering inputs and outputs even more valuable, not less. It gives you much more control. With ladder, the traditional definition of the scan had the physical IO only updating between single scans of the program. This way you could rely on knowing that the physical Inputs would not change state while your program was in a scan cycle. Some modern controllers, (AB Compact Logix) no longer adhere to this. They have what is considered an asynchronous scan and results in the I/O possibly being updated mid scan, perhaps even multiple times per scan. At face value it may not seem like that would be all that bad of a situation, but in actuality it creates a host of complications and extra considerations that need to be made while coding. Most of us mandate buffered IO on a Compact Logix system as a result, so that we know that we are looking at one single snap shot of the IO for every single scan. The use of buffering has created a rift where most are usually adamantly opposed to it or fervently for it. Those that oppose it often cite extra time to code, extra memory use, and believe it adds a layer of complexity that doesn't need to be there. Those of us who are for it feel the cost of the memory and time is generally negligible and is won back over time by having a more robust system. We contend that it makes the code simpler to understand, not more complex. It also makes it nice if you blow an IO point on a card and want to move the logic over to a spare. With the buffering you simply change it in one spot and your done. The retort to that is usually that you can simply do a find/replace just as quickly. Well maybe, but what if you want to for example debounce that signal. All of a sudden find/replace falls flat. Whereas I would simply go to my buffer and put a timer between my physical IO and my buffered IO and it automatically takes effect for all instances of that signal. And by the same token, this is where some other nice aspects of buffering come in to play. The buffering doesn't need to be a straight one to one mapping. It can serve the function of creating ON debounce, OFF debounce, ON and OFF debounce, one shots, and signal combinations. Having this stuff in the buffer removes it from the actual code so that the code is easier to read and understand. I often find reason to have an input debounced in both the ON and OFF direction, and the code to do this is will just clutter the actual sequence program. I also often buffer things in multiple ways. For example I may have a normal instance of an input and a one-shot instance of that same input. This serves two nice functions and illustrates why I think it addresses exactly what you were alluding to with your question. For one, you will find in the documentation that Unitronics discourages overuse of P and N contacts because they have a detrimental effect on the PLC resources. If you need to use the positive transitions of the same signal several times in your program you are much better off using one transition contact to control one normal buffer bit and then just use regular contacts throughout with that buffer bit. You can make it clear with a naming convention (ex. P Control Start PB) that it is transition. The other benefit is you have complete control over how that transition is refreshed now. If you recorded that transition with the buffer bit right in the first subroutine you can count on the fact that that buffer bit will carry the same state throughout the rest of the scan, no matter how many times you jump in and out of subroutines. That is of course unless YOU modify that buffer bit elsewhere. And not to be forgotten, the combination signal. What is this? Well possibly it is making more inputs out of fewer. Perhaps you have three aux guard contacts coming into the PLC in separate inputs. It might be beneficial to have one single signal that tells you if all three are on. Or, perhaps you have a mulitplexed signal coming in. Maybe it is a selector switch for a product select where product one is both off, product 2 is one on, product 3 is the other on, and product 4 is both on. Now you can make four buffered inputs that decode this one for one and product one selected, product two select, etc. Again, stuff like this tends to just obfuscate the sequence code. Perhaps you have buttons on the HMI that perform the same function as physical buttons, then you combine these and have both signals controlling the same buffered bit. I could go on and on. This is again another example of where buffering is handy. It allows you to write code that is non-hardware specific and then just attach those mapping in one spot. I am not certain what you mean by the input format is different. Perhaps you could clarify? What kind of problems are you having?
  47. 1 point
    The reason for Fatal error can be also strong picks of electromagnetic noise. Maybe something changed in the controller environment? New big machine? Or contactor in the cabinet started to perfomr worst, emmiting more noise? You can try function "Check subroutine by error code" (VisiLogic > Edit menu). This function will point you to the subroutine, where the application stopped with this fatal error. This can give you some direction.
  48. 1 point
    You will need to write logic that monitors the row pointer and take the difference from a separate buffer pointer. When the difference is >= 5, trigger your export and copy the row pointer to your buffer pointer. You didn't say whether you only wanted to export the 5 rows or the whole table. If you only want to export the 5 rows, you'll have to come up with a place to copy them before you export, like a small dedicated data table. Just out of curiosity, what is the data export function you want to use? Joe T.
  49. 1 point
    Hi Oliver, Can you check the received string from the other device? If you get -1 it means that the string configured in Protocol Scan is different from the one you receive, You can check in INFO mode --> Serial --> Monitor --> port2 RX window whether the received string is exactly as configured in Protocol Scan. (you can switch to HEX mode to view all special charaters.
  50. 1 point
    For starters, manually set your baud rate to 115200 and try to connect. Joe T.
  • Create New...