Jump to content


Popular Content

Showing content with the highest reputation since 07/20/2019 in all areas

  1. 2 points
    Hi DaveB, Look at forum topic http://forum.unitronics.com/topic/6241-read-single-precision-arrays-with-modbus-tcpip/?tab=comments#comment-25356 Does it help you? B.R.
  2. 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,
  3. 1 point
    OK. Time for me to get Zzzzz, but in the meantime ensure your A/V isn't interfering. And wait for someone else to chime in. No doubt my subconscious will think about this all night....thanks so much!!! M$oft has an annoying habit of breaking things with W10 updates.......and your system likely got one in the last few days if you let it. Patch Tuesday. cheers, Aus
  4. 1 point
    Just for clarity to everyone following this saga. The EXL-CAB295 is for the EX-A2X, NOT the EX-A1!
  5. 1 point
    I'm not sure how old you are, but back in the day less than one second per device on a serial network was considered fast. Each device must have it's own packet set generated and listen for a response, which in serial land can take a while. Modbus RTU is a handshaking protocol, not a broadcasting protocol. If speed is an issue you need to switch to Modbus TCP. Joe T.
  6. 1 point
    Modbus on 485 is inherently not a quick method of comms. On many modbus items from various suppliers a max baud rate of 9600 is the norm, so you can easily understand how that can slow things down as everything proceeds at that rate. You need to play with your settings and number of retries etc to find your optimum speeds that work for the entire network. cheers, Aus
  7. 1 point
    This is a classic example of how a transitional being called affects things akin to my statement above: " something unexpected going on during one of those "setup" scans can affect things ". The plc deciding what is being asked and finally setting things at the end of the scan, such that only one scan totally disrupts an expected operation, is an easy trap to fall into. And we have all done it at some stage! "Why didn't that work? Hmmmmmmm....the logic looks right so it must be a sequence issue missed by the dumbkerfarfen who wrote it!" (Hey...my new word that google's never heard of!) Without knowing the rest of your program, I would be putting ALL your motor controls in the one sub, which is constantly called. Another thing that you may possibly need to take into account is that you are running the motor via modbus, which has inherent delays that must be allowed for within all your controls. Things like emergency stops, deadband/hysteresis, etc. cheers, Aus
  8. 1 point
    You should always endeavor to avoid conditional subroutine calls for this very reason. Write your code so that every ladder rung is executed on every scan.
  9. 1 point
    Everyone encounters this type of problem from time to time. Rest assured that the PLC is executing the code properly. You can troubleshoot by placing an Increment function with an unused MI at strategic places on the suspect rungs. Here is how I would go about it: First, perform a search to make sure MB 12 & MB 33 are not being used elsewhere by mistake. Second, confirm the subroutine is being called by the Main Routine. Third, place an increment function just after your MB 33 Set coil. Fourth, place another increment function (different MI) at the end of your logic thread with the MODBUS FB. Then download and go online and watch what happens. I have one more question. You addressed how MB 33 was being Reset. How about MB 12?
  10. 1 point
    Brother, below is the answer: INSERT INTO `Alarm` \\ table adress (`DateTime`, `User`,`Event`,`Coment`) \\ column VALUES(STR_TO_DATE(@DateTime,'%d/%m/%Y %T'), @User, @Event, @Coment )
  11. 1 point
    Hello World, some time ago I wrote a small application for ammonia storage in chemical factory. Just some measurements, valves and communication to SCADA system. One day, the guys from the factory asked me to perform a routine check of the system. OK, I arrived to site and had a call with control room about the tests. One of the prescribed tests was simulating overpressure in the storage and checking if the alarm is sent to control room properly. The emergency valves were electrically disconnected to prevent leakage of the ammonia. Everything went smoothly, alarm was raised, the control room confirmed alarm so I switched back to real measurement, when... What the hell? I hear sirens. I just ran out from the equipment room and I saw four red emergency trucks arriving in front of the room. Something went terribly wrong. Maybe the electrician guys disconnected the wrong valves and ammonia leaked due to simulated alarm? My world went black. Emergency situation in the town, probably I will be fired from the company. I found the leader of the emergency group and I shouted at him: "It was my fault, how dangerous is the contamination?" The guy replied: "What contamination? We were just asked for a presentation for local TV." Damn, I will never forget that day.
  12. 1 point
    Hi all, some of you might have read my post here: http://forum.unitronics.com/topic/3992-unit-id-check-etc-on-online-test-first-login-on-a-bus-system/ I have been trying different approaches to this problem and have finally found one that makes it a bit easier. I have always had multiple instances of Visi set up for when I am writing code. If you don't know about this capability, read this entire post: http://forum.unitronics.com/topic/3884-question-about-visilogic-coding-operation/ to get the overall picture and pay attention to Shane's post at #4. For my multiple online monitoring I have had great success using many multiple instances of Visi, all with their own access address and program set for the plc I want to connect to on the same system. I leave all the instances open, overlapping enough to be a useful size but able to be clicked easily to bring that window into focus. I also run a remote access instance set to another sub-address on the unit that I just only need to observe. I have found this entire process to be invaluable when needing to skip quickly between various plcs on a connection. Instead of disconnecting, finding and loading the relevant program again, changing the unit id drop-down and then finally clicking connect, you simply disconnect in the currrent window, focus the relevant one, click connect and you're in. AND on the correct plc/program match without any stuffing around.....as long as you've got it right to start with! I have found this to be an absolute boon on working on a system that was previously a PITA to monitor and adjust due to all the linked plcs. The only caution is not to forget to disconnect on switchover, otherwise the network error comes up. But truly, it's a doddle compared to the previous way! Cheers, Aus
  13. 1 point
    I had same problem long time ago. Workaround was, to increase delay time between reading different devices when an offline device detected.
  14. 1 point
    First of all, you need to Read Holding Registers (R.H.R #3), not Read Input Registers (R.I.R #4). Also, you can read and write bits (coils) directly using Read Coils #1 and Force Coils #5 or #15. But the simplest method when you are communicating between two Unitronics Vision PLCs is to use the FB Read/Write Mixed Data. This FB allows you to enter a mix of operands and read or write them directly using a single function call.
  15. 1 point
    Hi Kratmel, Denis's idea is good, but I am also a little confused on what is being wanted. If the need is simply to measure the length of time the power has been off, and not actually do anything else, you could easily implement this using UTC. Store the current RTC to UTC reading every second. Have a power up bit that activates a subroutine that compares the current UTC to your stored one, does maths that then displays results on a screen that tells you both the delay time and also flash an alert if it is over 15 minutes. Or have a routine that always compares current UTC to the stored one, and if it goes over, or gets close etc does the same alert system. But without things being dependent on a power-up. cheers, Aus
  16. 1 point
    I have the same problem with second hand V120. After some manipulation with no result i disconnect the battery for some time. After that i make the hard reset. For V130 it is possible solution By the way i see in visilogic for new vision SB314 bit. This bit lock visilogic communication. In V130 it is no comment for this bit. I do not know it active or not for V130. But it is possible that bit is accidentally set in project and make problem with communication without any note.
  17. 1 point
    Paul^2, This is a really good example of a complex EX-RC1 application so I'm going to crank through it for the benefit of the forum. Thank you for posting your code! CANbus is a "sending" protocol - you don't read the PT400 inputs from the V130, you send them from the EX-RC1. The same applies to digital inputs. It's also not the easiest thing in the world to understand, but once you've done one it makes sense. It's important that you map out your memory first, as described below: Laying things out- EX-RC ID #2- No DI modules IO-PT 4 modules not configured and mapped to local MIs - I configured them as DIN 100 RTDs and mapped them to local MI 11..26. Open up the hardware configuration on the RC1 to see what I did. So - RTD's located in MI 11..26 with be sent to ID #1 V130 MI 201..216. I chose this address block because there's nothing existing around it. Local O32 ..O95 - V130 outputs O8..O71 This will require four MIs to hold all these bits- V130 MI 20..23 -> RC1 #2 MI 40..43. I didn't use MI 20 in RC1 because it was already mapped to temperature data. EX-RC ID #4- (make sure it really is ID #4 based on the DIP switches) No DI modules IO-PT 4 modules partially configured - I configured them as DIN 100 RTDs (alpha = .0385) and mapped them to local MI 11..14. RTD's located in MI 11..26 with be sent to ID #1 V130 MI 221..224. Local O32 ..O63 - V130 outputs O72..O103 This will require two MIs to hold all these bits- V130 MI 26..27 -> RC1 #4 MI 110..111. IO-AO6 module - configured 0-10V to local MI 60..65. The V130 will send its own MI60..65 to these. This is a lot to get you head around, but take your time and make your own map of what registers and outputs in the V130 correspond to which I/O in the RC1s. All your actual control code will be written in the V130. And I may have made a mistake somewhere in here. I wasn't able to test the configuration. Let me know if it behaves. Joe T. 1 EX-RC3Paul14-7-2018 JT.vlp Main1Paul14-7-2018 JT.vlp 1 EX-RC2Paul14-7-2018 JT.vlp
  18. 1 point
    The Recipe is a DTI file that you can load into a table. It is downloaded with the project. When working with DTI, the data is stored in RAM. If you choose to save the DTI into file, then it is saved into the external SD card, and it is not a part of the project, while the Recipe is being downloaded with the project and does not require an external SD. At the end, you need to load the recipe into a table in order to read data from it (You can have several recipes for the same table, and you can choose in run-time which one to load).
  19. 1 point
    Hi, I attached here a simple and working example of sending SMS to multiple numbers using DT. Just make sure to: Change on net 5 the greater than block according to the number of phone numbers you wish to send to. Add the numbers to the DT and download it to the PLC via the 'write values to PLC' button from the Data tables top menu. sms multiple phone numbers with dt.ulpr
  20. 1 point
    This is an older question but I thought I would respond. Having written mixer programs before this is the method I used to arrive at the correct weight for each batch run. At the beginning of the day the mixer was zeroed. But after that never again. In my process each batch had a recipe of water, gypsum and sand. At the beginning of each batch all that is needed is to look at whatever the mixer has as its weight at the beginning of the batch and look for the difference in weight as the ingredients are being added. A screen shot of a main viewing screen has been attached as an example. In the program you just use the weights as they are at the beginning of each step as the zero point. Keith
  21. 1 point
    mixer for powder adhesives and mortar
  22. 1 point
    And now for my next trick........I found that you can also do multiple instances of Remote Access. Very useful if that is all that is needed, rather than running the full blown program. And, drum roll, the double whammy is that if you have different models on the same network, it actually "shows" them, reducing confusion even more! My pic shows two over the top of writing this post. Cheers, Aus
  23. 1 point
    mixer for powder adhesives and mortar V570
  • Create New...