Jump to content

Leaderboard


Popular Content

Showing content with the highest reputation since 07/17/2019 in Posts

  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
    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
  3. 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.
  4. 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
  5. 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
  6. 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.
  7. 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?
  8. 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 )
  9. 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.
  10. 1 point
    @Cara Bereck Levy- I've posted a couple of times about migrating from Vision to UniStream and have been able to substitute missing functions so far after a bit of digging each time. My answers are usually found in the downloadable "UniLogic_Example_Projects". It just so happens that there's a directory in the extracted files called (of all things) "UDFBs". Where I found most of my answers. For those who haven't seen it's contents- So my question is this - why does the default UniLogic installation have a totally empty Library? These files aren't large. I humbly suggest that this collection be added to the UniLogic installation in the UniLogic/Library/Ladder install directory. Joe T.
  11. 1 point
    I had same problem long time ago. Workaround was, to increase delay time between reading different devices when an offline device detected.
  12. 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.
  13. 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
  14. 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.
  15. 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).
  16. 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
×
×
  • Create New...