Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation since 03/28/2023 in all areas

  1. I was contacted about how to connect the HSO outputs on a V130 to control a not-to-be-named brand of servo. If you're controlling a servo / stepper with the HSO outputs you're going to be giving it pulses and direction, so it's effectively a stepper. A servo controller has the added bonus of position feedback, but that's not important for this discussion. I tried to quickly find a post on the forum that covered properly connecting an HSO to the pulse input and I had a hard time finding what I really wanted with the forum search function. I decided it was a topic worth posting and pinning. Here's a pretty typical input to a servo / stepper control: The people who put these diagrams together assume you will be pushing the controller with a 5V line driver, which is why it's shown like this. The connection shown above tells us nothing about how to connect this to a PLC system. If you try to drive the PULS and SIGN input with 24V PLC signals you will blow this thing up. When you're connecting components together from different manufacturers, you have to have an understanding of basic electricity. There's no way around it. Ohm's Law combined with Kirkoff's Voltage Law (sum of voltage drops = 0) always wins. Let's dive in with some basic facts about optocouplers. This is the optocoupler part: It works by passing current through the LED which makes the LED light up. That turns on the transistor, which is made so that it's optically sensitive. Notice I said CURRENT. LEDs will start working after some forward bias voltage is applied and then get brighter as more current is supplied. The voltage drop will remain about the same, and eventually if you apply too much current the LED will burn out, just like a light bulb. A typical absolute maximum input current for an optocoupler is 50 mA. I always use a voltage drop of 1.2V and a supply current of 10 - 20 mA for optocouplers. Now let's look at the above circuit designed to run on a 5V pulse input with it's internal 150 ohm resistor and apply math: As you can see, the current going through the optocoupler i is 25 mA. Well within the specification. Moving on, the Unitronics HSO output is an open collector N-type Mosfet. "Open Collector" is manufacturer-speak for "we didn't connect one side of the device. That's up to you." They do this to get the speed needed to call it a High Speed Output. That's another discussion. Just think of an NPN / Open Collector / Sinking Output as a relay contact to 0V. You've got to provide the high side. Here's how the servo / stepper gets connected to the HSO Output: I've re-done the voltage equation to include the extra parts. For bonus points you can see if you can come up with the equations yourself. In addition to connecting the parts together correctly, an extremely important component in the circuit is the pull-up resistor. Let's say you're trying to hook this up and your boss and/or customer is riding your butt and you don't have a resistor. So you just connect your +24V to the (+) on the servo and connect the rest as shown. Let's do the math: i = (24 - 1.4) / (0 + 150) = 150 mA You will blow up the servo, the PLC, or both probably after about 10 pulses. Less if your output gets stuck on. If you've read my other posts on connecting stuff to open collector outputs you may remember that my go-to resistor I carry with me is a 2.2K (1/2W). Let's put a 2.2K resistor in for Rp: i = (24 -1.4) / (2200 + 150) = 9.6 mA Right in range. Yay! For the answers to these and other impossible questions remember that Google is your friend. Joe T.
    4 points
  2. Ok, managed to find the problem, here's the solution if others will encounter my difficulty: "capture image" FB only gives filename of the saved capture, to show the image in a fixed image element filename has to be completed with the folder structure in which it is contained (in this case "Media/Camera/").
    3 points
  3. I was wrong. There is a way to limit Modbus access to a block of data in MBs and MIs. Ausman motivated me to find it. I don't know when they were added, but they're not in 9.8.80. I downloaded 9.8.96 and Modbus limits SI 165 .. 168 are in the descriptors. Joe T.
    3 points
  4. I edited this screenshot slightly to remove unrelated video feeds (like news services love to punch at you) and the result is actually still genuine. I'm thinking it was a Freudian slip...... or one of the journo's workmates pulled a swifty.
    2 points
  5. hi @e janssens in one of my project I did something like that...I measure the power consumption of some motors; i split the day in 6 parts +1 to store the sum of these in a DT; so at the end I can check for each moto the power cunsumption monthly and daily. I used bargraph....
    2 points
  6. So--here we go, with a summary of the Unitronics forum community activity for 2023! In 2023 we welcomed over 1000 new members. Over 400 topics were posted overall and over 2,500 posts were made during the year. Over 1200 files were downloaded—and thousands of people searched the forum to answer their questions. The Unitronics community would not be possible without our forum MVPs. Our four knowledgeable MVPs—and I cannot stress this enough—are volunteers, not Unitronics employees. They devote a great deal of time and energy to the community as forum moderators. They approve posts, move posts to appropriate forums when necessary, and flag spammers (we have plenty of those). This is in addition, people, to using their general deep expertise in all things control--and their specific, profound expertise in Unitronics products to answer your questions. >Drum roll< Our thanks to our fabulous MVPs: Joe Tauser, of Joseph Tauser & Associates, located in St.Louis, Missouri, USA, http://www.jtauser.com/ Barry Lanier—you know him as Flex727—located in Allen, Texas, USA (near Dallas) blanier@arc-controls.com The one and only Ausman, located Down Under—Australia! Kratmel, otherwise known as Roman Kurka, located in the Ukraine. On a personal note, I truly value the patience these individuals show in helping forum members pinpoint the source of a problem, the solutions they find—and their humor. A little humor goes a long way!
    2 points
  7. Hi, there are some interesting new features in this version: - IO-Link support - Structured Text editor and the long desired - Support of opening more then one project on the same PC. (UniLogic Multiple Instances) I'm looking forward to work with this new functions! I still missing the folowing: - Compare function (Online <-> Offline) - Not only that something is different in a function. From other PLC systems I'm used to see the exact difference. - Software versioning - Export/Import project as ASCII files for GIT versioning (Like Projects developed in VS code.) I'm wondering if this two features are on the UniLogic developer roadmap and if there is already a release date for this functions?
    2 points
  8. And another one to prove this New Year's resolution of retaining clear thinking went astray a little. I dislike using "off the shelf" mobiles with the likes of goggles etc incessantly talking to HO, amongst other things I find undesirable. So I have a little W7 laptop set up for adb work on suitable phones, it does nothing else. I've recently had to get a new phone, and in setting it up I couldn't understand why the laptop was suddenly refusing to let me do Shift Right click open command prompt here. Hunted for a while and then gave up, sourced cmd direct and then pointed it to the right folder. Worked, but a bit tedious. Anyone who's done this with adb trialling ROMs knows you can do it a few times to find the one you really like out of a number available. And each time the laptop refused the option. I had the laptop sitting on the desk in front of my main screens (when I say little...I meant it!) and last night it occurred to me that I was being so stoooopid. For accessing a few computers onto the same screens, I don't use a full on KVM switch as it gave issues with different monitor capabilities from the 3 innately different computers in use. I use a USB switcher that only handles the mouse and keyboard, and switch the monitors manually to whatever input I need. So...I am used to using the same keyboard and mouse regardless of what I am looking at. I guess you have just figured it out as well.......I was pressing Shift on the main keyboard, not the laptop. But was correctly using the other mouse direct connected to the laptop. Duuuhhh. It was absolutely incredible, fantabulous and amazing that once I pressed Shift on the laptop, the process worked correctly........ 🤪 If only there was an OEM reset button on the side of my head, that would retain most info but reset the occasionally scrambled stuff.
    2 points
  9. Translated - A question.... And how are the sub routines created? I have the same problem every time I try to delete a "hide vars". Greetings While in the ladder editor click this button In the menu you can also Find "Add New Subroutine" under "Insert". Regarding removing "Hide Vars" - anytime there's a little eraser next to the field that's how you clear it Joe T.
    2 points
  10. @VladF OK, please try the following (Anyone else, don't try this. Each problem on its own): Start command prompt as Administrator Type in the command prompt: sqllocaldb delete unilogic Then type in the command prompt: REG ADD "HKLM\SYSTEM\CurrentControlSet\Services\stornvme\Parameters\Device" /v "ForcedPhysicalSectorSizeInBytes" /t REG_MULTI_SZ /d "* 4095" /f Restart the computer Then try running UniLogic and tell me if it helped
    2 points
  11. Thanks for the good news. Israeli brothers & sisters. I´m downloading the upgrade, right now. Vitamins and Amino acids. All the body need. 😀
    2 points
  12. hi All, i join the discussion...in my opnion the new features that Daniel wrote are really interesting...also, in my opinion, the variables grouping is a real good feature. for sure I will try this new release in the next project...starting from december/january...for the moment I can say "really appreciated".
    2 points
  13. Thought I would come back and provide what seems to have solved the issue. For reference I am using Socket 2... When a remote site would go into comm fail, I was able to go online with the V570 and set a value of 50 in SI105. From there I would manually reinitialize my ethernet card, plc name, socket init, and modbus configuration. On all sites that I have done this for I have had no further issues. Hope this helps someone else in the future.
    2 points
  14. The art of burning a transistor. The frequency converter does not understand art at all - but this time it exceeded expectations.
    2 points
  15. Apologies, I forgot to thank y'all. This is my first time posting in the forum. Long time reader of the forum though haha. Thank you!
    2 points
  16. From help... Having analyzed the research outlined in this post https://stackoverflow.com/questions/2651907/is-there-a-limit-for-the-number-of-files-in-a-directory-on-an-sd-card I concluded that the limitation in the number of files in the folder occurs due to the maximum length of the file name reserved in the PLC. That is, since the PLC is not a PC, it is probably impossible to implement a full mode of interaction with the SD card. Therefore, in advance, the developers limited the number of files so as not to exceed the capabilities of the file system when writing the appropriate file names.
    2 points
  17. I did some tests, and yeah, It's the same on V570 as V700. The Issue is not the Socket being Open, is that you need to connect the socket to a specific IP first to use Modbus OverTCP/IP. If you connect to a Device 1, then use Modbus IP function for Device 1, then you try to use another Modbus Function to Device 2 (Using the stored IP for Device 2 on the MI and selecting the correct device) then the PLC still sends the Modbus requests to Device 1. I know that because I get a response status of 7. * Messages 6, 7, and 11mean that the master has found incompatible elements in the data sent between master and slave. which makes sense because those requests don't make sense for Device 1. And based on my tests, to use connect function you should be disconnected first. already tried using connect without disconnecting first.
    2 points
  18. I suggest adding an in HMI attribute for each Layers Tag: Visibility This will make it easier to draw different screens by selecting only the "Layer Tag Visibility" parameter. If the parameter is not entered, Layer is active, and the "Tag Visibility" parameter of each element takes effect - this will maintain compatibility with all previously written applications.
    2 points
  19. Hi Mac; SM43-J-R20 or T20 has Fixed I/O is designed not to be expanded using standard IO-xxx Modules. The SAMBA Series in a subset of the Vision Series, meant for simple self contained projects. You will have to go upto a Full Vision Model. V430-J-R34 22 Inputs, 12 Relay Out EX-A2X Expansion Adapter IO-DI8-RO8 8 Inputs, 8 Relay Out ( EX-DI8-RO8 is an option -- Fixed I/O Expansion 8 In, 8 Relay Out ) You can also consider Kratmel's solution, but you have to re-adjust all the Canbus Struct Addressing to make it work. Another Method is using the remote I/O - SAMBA + Ethernet Module + URB-TCP2 + IO Modules. Again it is the programming overhead to make it work. These are for more experienced Unitroncis programmers who know the tricks from experience. SAMBA has limited Programming memory. DanT
    2 points
  20. On the other hand, I was the main programmer at my job for years, I knew that someday I would retire, and I made every effort to to document my programs, and ensure that my co-workers had access to all my work. to me, that was common courtesy... Just sayin'....
    2 points
  21. I am surprised by the number of times that question is made. And this is not only for Unitronics, but in the automation world, to have access to the source code/project that needs to be intended since the conception of the project. 90% of the time the original programmer doesn't intend to make their program available to others unless specified by the customer (In my opinion bad practice but it is how it is). If you don't have access to the password, then you need to contact the original programmer, if that is not an option then you will need to do everything from scratch. Every time I had to work on a project the first question I ask is "Do you have access to the original program or a way to make changes?"
    2 points
  22. "Coming back to finish code you started writing 2 weeks ago" Ain't that the truth.... But remember Flex, that's why you should put Comments between each net of Hieroglyphics as you go....
    2 points
  23. I think you are confusing the terms: slave ID is usually used to specify the device on the Modbus Network. in the code that you sent is hardcoded to be 1: register 400001 and 300001 to me sounds like different function code registers. are you sure that the Masibus Old and New scanner uses different addresses? some background on Modbus: Modbus works using specified registry addresses, and the called function codes: so, 30001 is the first address on the Input registers, and 40001 is the first one on the Holding registers. the difference is that holding registers are Read/Write and Input registers are only Read. so, if you want to access register 30001 you need to point to addres 0 of Input registers using function code 4 (Read Input registers). the program that you sent is accessing address 0 using function code 3 (Read Holding registers) which happens to be register 40001: If you are sure that you need to read register 30001 then use the appropriate function code: Also, some Modbus devices starts counting on 0, others on 1 just to take into consideration.
    2 points
  24. Just as the Flying Dutchman must always have a Captain, a subroutine must always have a Return. If you insert a new sub into a program you'll see that you can't delete the one at the end. But you can have more than one Return function in a sub - The only way to make a sub go into a looping behavior is to use a Jump to Label command. I avoid this command because the way a PLC scans is a looping mode to begin with. As Flex points out, creating a loop inside your PLC program is a good way to tempt the Watchdog Timer to bark at you and crash your PLC when you least expect it. Joe T.
    1 point
  25. I'll add it to the To Do list.
    1 point
  26. is it possible to modify it or update it using my IHM? Not directly. You can add Ladder logic using: And trigger it from HMI. And for the Tag selection what should it be? I don't understand the question. Can you elaborate please?
    1 point
  27. RickL, To start this I just to let you know my background so you know were this is coming from. I have been programming PLCs for 9 years. I started with Unitronics and have used other brands. I also have experience with microcontrollers and other small electronics. So these comments are things that I have had to learn the hard way on jobs. So let's start from the requirement that was listed: "The normally idle, stand alone, self-extrication PLC is will be in "hot-standby" mode with battery back-up operation. I'll need to establish a communication link between these two PLCs. I'll need more than just a "heart beat" failure indication of the main PLC controller, thinking to possibly emulate a "catch/throw" error paradigm with-in the main controller to the cause of the controller/peripheral failure. Here the extrication PLC would weigh the best course of action." That is an outline of an idea. There is not enough information to start trying to figure out what your question is. What are you asking/looking for from this thread? Starting with the elephant in the thread, what is the difference between this and a set of manual control overrides after the main PLC fails? Now to the talk about the outline as if it was a good idea that I would have to help work on : The communication between the two PLCs is a big part of the scope that was not talked about in detail. How will the two PLCs communicate? The hardware Layer? The protocol Layer? Are you going to write your own protocol or use one the PLC supports? Have you looked at the different protocols that the PLC supports and picked which one that you are looking at using? What data do you want to move? ML,MB,DW,MI,MF When you say "catch/throw" is that from the C or java error handling? In PLCs you can only send integers or coils directly between the two PLCs. (there can be ascii text stored in the integers) What are you thinking of sending that the second PLC needs to know from the first? Are you looking to make the main PLC send a error to the second PLC or talk all the time? How fast is the send/receive rate between the two PLCs? After talking about PLC communication now is the extrication PLC Hardware: Have you looked at what goes into amusement park rides for PLC and IO? They are dual PLC Processors, dual PLC IO cards, dual field sensors and dual outputs. If your first thought is that an elevator is not that complicated as the ride, then as my PLC teacher hammered into me "The devil is in the details. You have to think it through". So what is the second PLC going to get the data from? Will it have its own PLC Inputs? Will it have safety rated inputs? Will it have its own secondary sensors? Will it have its own Position Sensor? Will it have its own outputs? Will it have override outputs to block the main PLC? What keeps the second PLC from going bad? Are the two different PLCs in the same cabinet? Do they have independent 24V power supplies? Are there sensors and IO from a different power supply? Will it be connected to the fire alarm? What to do for every different error that can happen? How to display the errors when they do not agree? Who will win between the two controllers? The error checking: The scariest thing that a customer can say to me is "Just have the PLC figure it out what is right". There is a ton of work going into error checking and knowing what is right to the process. Just to know if there is an error is hard even with two sensors, what sensor is right and what sensor is wrong. Again who will win between the two controllers? I can count on one hand the number of times the PLC stopped working on a machine that was not damaged by the operators or it's environment. The PLC hardware error that you are looking to fix will be small. There is a lot of thought that has to go into what the error state is going to do.. How will this be displayed to the end user, staff? What advantage will there be over a set of manual controls? What about equipment failure for non PLC parts? What about Fire Service? The posted description is confusing: "hot-standby" "extrication PLC would weigh the best course of action" So the second PLC will not drive the elevator but to the safety floor, then it is more of a watchdog PLC not a hot-standby. If you think that I am trying to be dismissive just think what you have given in details in the topic. This is what I would ask the customer if I was trying to make this work for real. The simplest part of the project is getting the two PLCs to talk, the hard part is what to say. If you think that they are both simple and I am wrong then I go ahead and ignore what I had to say. Have you looked at the enclouded example programs? They are a great way to learn about and see how the functions work. They may be on other PLCs but I have used them in the past to see how to make communication work. The pump program you are working on is a good way to start learning about PLCs. There is a place to get your hands dirty and just see what you can do. If you are looking for someone to post a program for communication between two PLCs with error checking to help you getting started, then you should consider that this project is beyond the scope of what you can handle. The people with knowledge gained by programming for years have suggested that this is beyond what a person's third project should be. This is not gatekeeping, this is explaining what we have learned from our experience in programing. I know that by saying that you are going to take that as a challenge. That I can not help, I am just trying to give an objective answer to what you have posted. When the other people on the forum are saying this is "outside the realm of typical PLC control" is because there are controllers that are specially built for the job. They have been tested and are known to work and have been certified. Anything with a dedicated controller can be run by a PLC, but would you want to use a sledgehammer to crack a walnut? As much as I enjoy talking about feeding mayonnaise to live tuna fish, there are some things that would be better spent programming time on.
    1 point
  28. Hi MELDAW, How the indirect combo box working (tag and path)? Choose indirect, set the Drive Type, then in Path (Const) set the path to your file. For example of I have a file name myFile.txt on the root folder of my SD the value will be #"myFile.txt" In the used file each string should be in a separate line, The txt file needs to be in UTF-8 encoding. For example: Dog Cat Mouse I want to use the combo box to choose a CSV files in SD card, or use their STRING(names) from DTI tables, is it possible? Only supported format is as described in my answer above. I hope it help. I will make sure this info will be added to Help section
    1 point
  29. Hello PLC community! Our PLC dewatering pump station utilizes "Turbine" flow meters in its discharge pipes. The recommended "straight" pipe run distance before your flow meter is 15 x pipe diameter and 5 x after for stable and accurate flow rate data. This leading "straight" pipe run allows the generated turbulence from lets say a 90 degree elbow, to become more "laminar" in its fluid flow. In our case, the required straight run length would be 45 inches before and 15 inches after! (5 feet total) The problem was that the area I had for the four large dewatering pumps was only 46" MAX!! Pictured below, was my prototype solution to this space confinement. The finished unit consisted of two 3 inch PVC unions surrounding a 4 inch long "1/2 inch tube filled " 3 inch PVC pipe. This allowed me to install the flow meters within only 8 inches of the "turbulent" 90 degree elbows!! The "tubes" act as a "water straightener" quelling the generated vortexes and rotational twisting out of the elbow resulting in a laminar flow. Hope this maybe helpful in your pump application!
    1 point
  30. I would move to a brand (not Unitronics) that have redundant controllers (and I/Os).
    1 point
  31. Oh My... And I know this is gonna send me to "forum purgatory", but WTF are you talking about? You keep delving into control logic that is outside the realm of typical PLC control. This is why elevator manufacturers have dedicated (certified) controllers for these applications. And why hack programmers (with any common sense) should steer clear of these projects (unless they have a big pocketbook to back up the liabilities involved). 👿
    1 point
  32. @Ausman and all, Google Play Store did chges in requirements for software. Our R&D working to fix this. Testing changes will take some time.
    1 point
  33. just to clarify, on this screenshot rung 2 its continuously counting... I believe that you intended to count only if FirstScanBit changes from false to true. In that case the correct logic is to use a positive transition contact: ------|p|--------[Add]-----
    1 point
  34. Hi; Info Mode tells a lot about what is happening inside a Vision PLC Touch the scteen ( in a Non Programmed Touch Area ) for 5-10 Seconds Enter Info Mode / Calibrate TouchScreen Appears Enter Info Mode -- Password is 1111 New Screen with menu appears. Version - Software gives info about the OS and installed Program Flash memory -- tells if program is backed up in Flash Memory Explore the others to get familiar with the PLC status DanT
    1 point
  35. OK all, so I got your attention with the odd title. Santa Aus has a Xmas tip for you. 🎅 I recently had to work on a very old program of mine, done when I was in my PLC infancy. (Yes, they did have PLCs back then......they ran on a pedal generator. The machine itself worked from 5000 mice running on a wheel). One thing that struck me, and caused me some angst, was that I chopped and changed my methods of controlling things via bits throughout the program. I am talking about the decision that must be made at the start of a project.... "which way will I switch MBs (or the same thing on other PLC brands) to do further control elsewhere". This decision should likely be made for the rest of your PLC programming life, anyway. Decide on either having the MB turn ON or OFF for a true or false condition, and religiously stick with this concept throughout the project. It gets very confusing when dealing with a piece of ladderwork where you have both methods in place, especially when working with an entire rung of MBs that all work together to do something else. Sometimes the way this all works initially seems wrong, but think it through logically, Mr Spok. 🚀 In my case these days, in an OK condition, the MB is ON. Same thing if an error is happening, it is ON.....but this means that the contact doing further control is Inverted, so that when the error is NOT happening, the MB allows flow as there is no error. Anything meeting the required parameters turns ON. Here's a quick copy of my self-recording dialogue during finding such inconsistency, severely edited for public consumption. "Hang on. That makes no sense. Is that meant to be on or off?" Hunt through the rest of the program to find what controls the culprit. "Ohhh, this one's OFF for OK, but the next one is ON for OK." "You dumbcluck, Aus. Talk about making it hard for yourself!" 😖 Cheers, and enjoy your Xmas time. Aus
    1 point
  36. Notice the path in Saragani's post above. "C:\Program Data" is a hidden folder, so if you don't have the properties in Explorer set to see hidden folders you won't be able to view it. When you're in an HMI screen the "Image Elements" toolbox appears. I'm guessing you've already got this far. It gets a little tricky when you click the "..." box under the Image property: I incorrectly stated in another post that UniPics don't get installed with UniLogic. You just have to know where to look for them. When you click on the "..." box, the open dialog appears. You then have to select "Unitronics UniLogic: Clicking the little ">" Expand Object thingy reveals the secret location: Joe T.
    1 point
  37. I cannot view the jpg pictures which are essential to the explanation, can these be restored in Damians's Sept. 14 post?
    1 point
  38. I couldn't resist - State Machine! Download the program file and see if you can follow what I'm doing. It's in Visilogic 9.8.80. You've described a four-step sequence with different actions of the same input based on where you are in the sequence. Trying to do something like this with contacts and coils can make your head hurt. The style of programming in the attached file is based on a computer flowchart. Joe T. NickButt Program.vlp
    1 point
  39. The wording of the help file is not quite right in this case. It should read differently along the lines of Once Key 3 is pressed, O3 switches on, the timer decrements to zero, and once it reaches zero O3 turns off. Vision timers can do everything needed with timers, but other plc makers often have far more types (and methods of relating that timer to other elements) that make it far, far easier to achieve an aim. This has always been a pet hate of Vision that I have. Using Flex's example above, another brand I use simply needs 2 elements on one rung to do all that. The best interpretation of Vision timer implementation is the sequence chart which you see immediately under the particular timer's heading. Stepping through it shows exactly what happens with different scenarios. cheers, Aus
    1 point
  40. As Flex points out, a ladder program is designed to continuously scan. You can use this to your advantage, as you don't want the PLC to go dormant in some kind of PAUSE mode and ignore the rest of the conditions on our machine. 1. Make a high pressure alarm bit and block your solenoids with it. You may or may not want to make it self-resetting, but you'll want a deadband so it doesn't chatter. Block your solenoid outputs with this bit. 2. I often roll my own timers when I want more control. Use one of the internal system time pulses and an MI to count them. Then you can use the alarm bit to "pause" the timer without loosing it's place. Note that you'll have to handle resetting it. Note that these are very basic general examples. If you start asking specific questions about your program, please upload your .vlp file so we can see it along with your questions. Posting a bunch of screenshots usually doesn't tell the whole story. Joe T.
    1 point
  41. Further to Flex's comments, something for you to consider. I often preach on the forum that in many instances a "timer" issue like yours is far easier to set up, and simpler to understand, if you use a counter based system instead. You set up a self-resetting count that increments at a suitable rate, based on a system time like 100ms (or bigger or smaller...depends on your need). You then do compares to trigger actions....."if the count is b/n A & B do THIS output; if it is between A & C do ANOTHER action; between F & H do THAT; right up to the main reset where it starts the count again blah blah. Your case of 5 seconds means one of those compares would be perhaps based on 0 - 50 if you are using 100ms as the count increment. Interacting Timers can often lead to Terrible Interaction Knots happening! Counters are simple, very easily manipulated and show what is going in a snap. They seem to have gone by the wayside over the years, but are extremely powerful and diverse in the right hands. I guess because people only associate the word "time" with "Timers". Thinking outside the box is a powerful concept when working with plcs. cheers, Aus
    1 point
  42. Yes, there is a GoTo in Unitronics Ladder Logic, but it should be avoided. It is poor programming practice in 99.9% of circumstances. There are far better ways to execute only the rungs you want executed. My philosophy is to work backwards from outputs or coils to inputs or contacts. Determine every circumstance that should turn that output or coil on and write that logic. When that is correctly done, there is no need to skip rungs because they will not activate the output or coil automatically. A simple way of accomplishing this is to assign a coil to turn on when a>=b, then place the inverted contact of that coil in front of the logic you want skipped.
    1 point
  43. C:\ProgramData\Unitronics\UniLogic\Data\UniPics\Buttons Joe T.
    1 point
  44. So I answered a post yesterday where the user was concerned that the cost of the controller was over $500, implying that this amount was putting the project out of reach. This morning a few of the things we take for granted and never question came into my mind- Decent tires for my Jeep cost about $1,000 A new cell phone costs $600, but it's a "free upgrade" because it's rolled into your next 24 payments A trip to the grocery store for a week or so of food is $300 for a family of four My furnace/AC upgrade to a high efficiency unit was $7,000 Getting my car fixed by someone else is usually about $600, no matter what the problem is. Sometimes it's a lot more. Health insurance is >$700 / month And so on..... It seems like machine controls get the short end of the stick a LOT. Why is the perceived value of what we provide so small? Systems I've installed are still running fine after 20 years! I know not every customer feels this way, but it get this response frequently with people new to control systems. I'm afraid I'm not far from becoming a full-fledged curmudgeon. Joe T.
    1 point
  45. Hi Vamal, First up, it seems that you are in a bit of a bind with that actuator...it is one of the models in the Belimo range that doesn't have the modulating module option...not all of them do. However, more later on the fact that it does have a DO module. Also, just making sure that you understand that I'm not saying change the valve, I'm saying just change the actuator. If you can just change the actuator have a look at this: www.belimo.com.au/pdf/e/EV24A-SR-TPC_datasheet_en-gb.pdf But......you have an actuator that is large, and therefore $ are higher if you choose to change it, which may influence your decision. But if you stick with Belimo (and I think they are good units) the only way in this size area you will get modulation seems to be to change the actuator. I would check with your local Belimo to make sure of this. If you cannot change things at all, you could perhaps add the 2 x DO module. You could use this to get endpoint signals periodically, say every 24hours, which in theory then let you update your maths every day to work with theoretical position by checking the running time end to end. If the system has downtime this is simple, if it is on 24/7 then harder, but not impossible. Theoretical/virtual position is in some ways not necessary anyway, if you move the valve and get the required result then you don't need to know where it is! But I have always found that modulation makes the process much smoother and is ultimately the easiest to implement. Check with Belimo, they sometimes have more than the catalogue says! cheers and good luck... Aus
    1 point
  46. Hi all, But in the original post isn't the problem that there is multi-step control needed? Are you suggesting consecutive separate PIDs, Hightech? Or is there a method of doing it all in one hit? I'm curious! As an aside, I don't do PID for any of my installs because in my instances the loadings vary wildly, and the feedback speed also has large variations. I tried it in the past and spent a lot of time tweaking things. I found that although I might get a small improvement in maintaining setpoint, what was actually happening was that the mechanicals involved were swinging wildly around to achieve it, thus wearing out far more quickly, which was a significant issue. For my stuff simple linearisations of outputs works best. But I am the first to admit that other people have far more knowledge about PID than I do! cheers, Aus
    1 point
  47. It's too quiet here in Unitronics-Land, so I'll add this... A young Programmer and his Project Manager board a train headed through the mountains on its way to Wichita. They can find no place to sit except for two seats right across the aisle from a young woman and her grandmother. After a while, it is obvious that the young woman and the young programmer are interested in each other, because they are giving each other looks. Soon the train passes into a tunnel and it is pitch black. There is a sound of a kiss followed by the sound of a slap. When the train emerges from the tunnel, the four sit there without saying a word. The grandmother is thinking to herself, “It was very brash for that young man to kiss my granddaughter, but I’m glad she slapped him.” The Project manager is sitting there thinking, “I didn’t know the young tech was brave enough to kiss the girl, but I sure wish she hadn’t missed him when she slapped me!” The young woman was sitting and thinking, “I’m glad the guy kissed me, but I wish my grandmother had not slapped him!” The young programmer sat there with a satisfied smile on his face. He thought to himself, “Life is good. How often does a guy have the chance to kiss a beautiful girl and slap his Project manager all at the same time!”
    1 point
  48. Hi again all, I have been working on another brand of PLC lately and am now back to my Unitronics stuff. The other brand treats sequential "groups" of ladder work as part of the main scan. I spent hours yesterday trying to figure out why a linearisation wasn't working. I was developing the next stage of a program and just had one element in the ladder, to work from there. Double check everything and it should be working....hmmmm...why not? Maybe I've forgotten how to do the X/Y relationships. Change things around again, many many times and still no output to my MI. What is going on? Power is there and it all should be working. Finally in frustration I looked up other work and noted the subroutine calls. I hadn't put any into my ladder because of my using the other PLC type which didn't need them. I was simply doing the same thing, where I had a number of routines but had separated them into the general idea of what was happening in that part of the ladder. On the other PLC I didn't need to call them. In this case I was starting on all the linearisation that is going to happen, wth it all in its own subroutine. My big whinge is that Visilogic (9.7.0/0) shows the power rail as active across the ladder elements in a subroutine that isn't being called. This is what was constantly throwing me off. To my thinking this is a significant fault in the program. If I had seen that there wasn't any power I would have twigged immediately. But I was being told that it was there. I know that I should have realised my error, but it is easy to get confused when working with other PLCs, as one has to remember so many different ways of doing much the same thing. But having the power rail as showing didn't help at all!! And the other thing that really bugs me, which perhaps should be in a separate thread, is that you can't do even the most minor alterations to a program on line. This other brand lets it happen to a high stage of complexity. Whilst online you can enter an edit mode and use most of the elements available. It asks all the precautionary questions that one would expect when you tell it to commit, as I understand that in some instances such a capability has the possiblity of doing something catastrophic. However, used sensibly it is fantastic. It makes it so much easier to change your ladder when you have made a dumb error, or want to try another way. I wish Unitronics would try to find a way for this to happen......it is a right pain in the bum having to go through the entire download process if you just want to trial/change one tiny thing. cheers, Aus
    1 point
  49. This is an example of normal translation Every thing flows left to right as expected. Now lets add a contact in series with the INC block. As you can see the left to right execution has been broken. It actually went back and executed the comparator twice! It interpretted the ladder as if it were actually written as so. So you have to be careful how you structure your rung. Now watch what happens when I add another test/operate condition in series. In reality, the translator actually broke the network up into three separate rungs. Each time it redundantly re-tests all of the preceding conditionals. Only problem is it is only redundant if the conditionals don't change during the rung execution. The moral of the story is, be careful when writing rungs that both test and operate on the same operands. The results may not always be as expected. When in doubt, double check the STL just to make sure it jives with what you wanted.
    1 point


×
×
  • Create New...