Jump to content

RickL

Members
  • Posts

    111
  • Joined

  • Last visited

  • Days Won

    2

Everything posted by RickL

  1. @"Leen" Hi Leen! Maybe this will work for your 360 compass needs. Its simply two mirror images (one inverted) in the standard gauge selections. Mirror data to both "hemispheres" and with simple data comparison ie: " < > <= >= " logic, highlight the active pointer (upper or lower hemisphere). Rick : )
  2. Had the same issue with my turbine flow meters showing a "jittery" output , ...... violent spikes at times! The problem was NOT the turbine, it was the turbulent (jittering) water flow within! Built a "water straightener" , installed it in-line and the water went immediately laminar (smooth flow ,balanced). Turbine output clean and stable!
  3. @CaraBereckLevy Hi Cara! : ) I cant find the post again where you were responding to a community member needing a "three color bar graph" (ie: start green, then transition to yellow, then top out at red) If you can it find it ..... please carry this post out to him please! Found the post!! Bar Graph & Tank Ranges by: Damian Thank-you! ThreeColorBarGraph.vlp
  4. ........... also, is there a way to capture the X-Y coordinates of the current mouse pointer (its X-Y is now displayed at bottom left side of the screen) when I "click" anywhere on the screen? The stored X-Y location data would be very helpful in HMI graphic layout and code development .
  5. Hi Unitronics Community! : ) Just now starting out with the "Unilogic" ver. 1.34 192 paradigm IDE ......... (I dont have my Unilogic PLC as of yet to even see my run time ladder and HMI code working). My first project is a "Ramp-Soak-Spike" profiled time and temperature oven/kiln controller (inspired by one of our unitronics community members). In the attached graph, I'd like to have an historic run time "live" plotting of small red squares (breadcrumbs) of the actual temperatures measured at that time period ..... laid over the static fixed time/temperature graph heating profile (dark blue lines). The already made available graphs and live trends in this IDE was not suiteable for my desired HMI presentation of this project. It looks like in ladder "Tools", "Drawing", "Insert Shape" maybe what I'm looking for. There seems to be very little in way of examples and docs about this feature : ( I'm hoping this is a "run time" ability to insert programmatically lines, rectangles and circles into the screen. Is this true? Can "Text" be inserted as well? ...... or numbers? (ex: "walking text" by varing the X-Y coordinates ) My code already kicks out the X-Y referance data points needed for each of the temperatures sampled. If you could steer me to any additional sources of docs or examples of this feature would be appreciated! Thanks! : )
  6. ....................... Brutal Juice!! Good job! : )
  7. ......... a"voice recognition" and "speech annunciator" API module would be awesome for an ADA integration with the stand alone HMI displays! ie: "door closing" , "4th floor, door opening", etc.
  8. ................. Brutal Juice!! : ) Just what I was looking for!! ..... a distributed HMI set at every floor and one in the elavator cab ...... all under one controlling PLC. Good job Unitronics!
  9. Hello Marco! : ) Your desired "Ramp & Soak" FB or code paradigm has sparked my intrest as well! (we may want to start our thoughts on this in a new thread) In prima facie: I'm assuming a variable controlled electric heating element to "ramp up" , "plateau" , "ramp up spike" then "ramp down" to cool off. In the "ramp down cool" slope, do you require "active cooling" or simply the lack of the induced electric heat over time? My thoughts would NOT to use "Data Tables" to define the slope temperature/time data profiles. A simple "start and end" variable assignment is all that is needed for each ramp slope. (look at your graph above, and look at the entire ramp profile as a "polygon" including the bottom base line). ie: Var1 = 60 degrees Var2 = 135 degrees (initial starting ramp) Var2 = 135 degrees Var3 = 135 degrees (steady plateau) Var3 = 135 degrees Var4 = 295 degrees (up spike ramp) Var4 = 295 degrees Var5 = 60 degrees (cool down ramp) Basically, My thoughts to your "Ramp & Soak" PLC solution is to simply use the "Point-in-Polygon" C-code (attached below) and use its output varibales to control the varable heating source. I currently use it in my "invisable dog fence" pet contaiment code to determin if the dog is "in" or "out" of the allowed yard area. I'm sure we can easily modify this "Point-in-Polygon" C-code to inform us if temperature is above or below the ramp slope at any given point in time ......... and then package it in an FB. ...... your thoughts? POINT-IN-POLYGON C-code package point_in_polygon.c; /** * Used to perform the Raycasting Algorithm to find out whether a point (in this case, time and temperature) is in (in this case, above or below a certain temperature at the time sampling period) given polygon. */ public class PointInPolygon { /** * Performs the even-odd-rule Algorithm to find out whether a point is in a given polygon. * This runs in O(n) where n is the number of edges of the polygon. * * @param polygon an array representation of the polygon where polygon[i][0] is the x Value of the i-th point and polygon[i][1] is the y Value. * @param point an array representation of the point where point[0] is its x Value and point[1] is its y Value * @return whether the point is in the polygon (not on the edge, just turn < into <= and > into >= for that) */ public static boolean pointInPolygon(int[][] polygon, int[] point) { //A point is in a polygon if a line from the point to infinity crosses the polygon an odd number of times boolean odd = false; // int totalCrosses = 0; // this is just used for debugging //For each edge (In this case for each point of the polygon and the previous one) for (int i = 0, j = polygon.length - 1; i < polygon.length; i++) { // Starting with the edge from the last to the first node //If a line from the point into infinity crosses this edge if (((polygon[i][1] > point[1]) != (polygon[j][1] > point[1])) // One point needs to be above, one below our y coordinate // ...and the edge doesn't cross our Y corrdinate before our x coordinate (but between our x coordinate and infinity) && (point[0] < (polygon[j][0] - polygon[i][0]) * (point[1] - polygon[i][1]) / (polygon[j][1] - polygon[i][1]) + polygon[i][0])) { // Invert odd // System.out.println("Point crosses edge " + (j + 1)); // totalCrosses++; odd = !odd; } //else {System.out.println("Point does not cross edge " + (j + 1));} j = i; } // System.out.println("Total number of crossings: " + totalCrosses); //If the number of crossings was odd, the point is in the polygon return odd; } }
  10. Hello Unitronics Community! : ) I would get the same "Notifier" error at runtime and it would self-terminating this app. This was under a clean WIN 10 install and a clean Unilogic 1.34 build192. During the 1.34 192 install, I ran the SQL updater ...... it reported it found NO SQL LocalDB to update! After doing ALL the suggested fixes made in this thread (ie: registry changes to *4095, etc) ...... nothing worked! Only after I installed SQL Server Express LocalDB and .NET Framework 4.7.2 ..... did everything start working perfectly! (NOTE: Im a code "hack" ..... not a computer geek! )
  11. "Please clarify whether we are talking about the Visilogic itself or the program loaded in the PLC." - Kratmel Hello Kratmel! : ) The HMI problems I was having were mostly self-inflicted I think. I now realize I was way exceeding the refresh capabilities of the display unit resulting in poor graphic animations. In the IDE , there was a definite and progressive slowing down of every HMI change or addition to the HMI. It was taking longer and longer to take (record) any command. At one point, the IDE crashed big time! (was very stable before all the animation work) Crashed everything! I had to REVO everything and install fresh IDE. New install working perfectly and fast! Aside from the display refresh issues, I noticed when "Group" and "un-Group" ing, collections they would tend to paste off slightly from where they were set. I have seen the same group pasting affect previously placed objects that were not involved in current operation (but were still assigned into that group) where one or two members within this group would "jump" to a new location (1 or 2 pixels away). I was thinking "the instruction codes are running out of glue? : ) This was too crazy a time to determine anything with any certainty at this time ...... I'll just keep an eye out should the problems reappear. Thank you for your response!
  12. ………. and an “Indexed” Sort would be awesome!! : )
  13. Hi Flex727! : ) Not exactly ..... but this maybe a "like" issue. While building a very heavily populated HMI ..... putting many elements into a "Group" collection, will almost every time misalign or "shift over" random elements already in place (maybe by only a pixel or two). Crazy and frustrating! : ( The red blocks in the pic below were all in line when laid down originally! : (
  14. Yep! This revision had that typo in its title ....... It certainly is Regeneration
  15. Hi AlexUT! : ) "As reach is display graphics, as long is scan time and display refresh time. Especially when switching displays" - AlexUT Agreed! ....... I painfully learned this the hard way! In my desire to have a functional and "Sensor + Data Animation Fusion "eye candy" display for my water softener design, I had to learn the basics of human visual animation. To present a professional seamless HMI display, I realized I would need to work at the smallest "pixel group" size that the Samba SM70 could handle for the subtle incremental display to achieve the "animation effect" To emulate the water "flow rate" (sensor) and graphical representation of "water flowing" inside a pipe, I used a text image of only 2 wide x 8 high !! ( Think: working and placing these on an zoomed in HMI screen grid! It takes 4 of them just to fill out one grid box!) This worked perfectly! ..... resulting in an awesome professional looking and smooth graphic animation. But, about half the way done constructing the HMI, as I kept adding this animation to all the water pipes, errant "artifacts" began appearing throughout the display. Continuing on with adding more of the animation elements, the errant display pixels groups became visually poor. I'm assuming my high resolution desired exceeded the refresh capabilities of this display unit. This kind of desired resolution probably needs a dedicated "graphics processor" to achieve. So, I had to change to a less demanding and lower quality animation scheme.
  16. Hello PLC Community! This HMI Shell Demo shows an effect of "falling toast" as it is ejected from a new commercial bread toaster design. As this design is a top loaded, bottom ejected toaster, I desired an animation of the toast exiting "in free fall " into its recovery wire shoot as it does in the prototype. - Hope this inspires like imaginative uses! Scope of project: The nearly 1K WAWA convenience stores on the east coast of the USA uses multiple "touch screen " terminals in each store for customers to enter their order of custom made deli food products (ie: sandwiches, bagels, paninis, etc). What's great about this is you can select "a little mayo", " regular" or "extra mayo" for example. The way you like it! : ) This personal "customization" options spans throughout their deli menu items. This new design toaster now extends this customization feature to the breads they are built upon! This new toasting feature now allows the customer to choose the way they prefer their toast "light, med-light, regular, med- dark, dark" The toaster also affords a "cool-down" option! Nothing worse than a very hot bagel and "chilled" cream cheese prepared together ........ makes for a wet and mushy meal! : ( This PLC based toasting system is integrated into their existing POS ordering system data network. Toast V.2.vlp
  17. Hello PLC Community! This DEMO .vlp file suggests a very powerful HMI animation graphics "Fusion" concept. It's using the "real time" HMI sensor data to form "true to scale" and "live" representations of an animated graphical display of complex industrial machinery and processes. An example of such would be an overhead gantry crane tracking its precise X and Y movements including its Z cable payout. All with sensor data accurate HMI animations. Others may be an X,Y laser cutting machine or large metal presses, etc. What I like about the fusion graphics is, for example in the demo, the elevator lift piston position is precisely where the elevator actually is! The elevator doors for example, if were "stuck" half way open, this would also be reflected in the real time graphics. What you see in the HMI display is in "real time" what it is. This is the awesome power of using the fused graphics. It is my quest to now form a dedicated HMI fusion graphic engines (FB's) library. Simple modifications to the existing bar graphs can be made by exposing the "hooks" as "user coding variables" to programmatically control the arrow UP and arrow Down directions for example. Other coding designs would be to incorporate multi point "indexing" of the existing bar graphs and linking capabilities. I would think that such a library offering of an HMI animated graphics package for the PLC market would be a highly desired marketing feature. I hope to hear from the Unitronics software coders their thoughts and exploration into this concept. Elavator V.85.vlp
  18. ...... cont. (sorry! missed some of your statements and assertions) "So these comments are things that I have had to learn the hard way on jobs". - 2N2907 Are your trying to validate your "comments" here by offering the supporting fact you had a "hard work experience" ?? Well, ..... I never worked "hard" in my work! I've always have worked "easy"! Since the time of the cavemen, some smart guy thought up the idea to make a wheel to carry home the buffalo ..... he "worked easy" : ) You, in this day and age of incredible machines and technology that make our work days so easy ...... have toiled "hard" in your lifetime of work? .... I would say you missed the boat here! Working "hard" to me is someone who lacks insight and creativity to an "easy" way of intelligent life style.
  19. "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?" - 2N2907 Correct! It lays only the foundation of inquiry ....... the discussions and questions follows after this! "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?" - 2N2907 A "manual extrication" requires someone to "manually" in person, perform the extrication. A "self- extricating" PLC would do this without human intervention. I hope you can "ACE" the distinction! : ) "Now to the talk about the outline as if it was a good idea that I would have to help work on :" - 2N2907 You will severally cut yourself short in life and knowledge if you state your conclusions before you even hear out the rational offered thru discussion and peer review. Is this your "normal" way of thinking of things?? : ( "The communication between the two PLCs is a big part of the scope that was not talked about in detail." - 2N2907 We've started! (Look my conversations above with Gabriel Franco and Fernando Castro) ....... your the third competent inquisitor to date! I welcome your intelectual inquisition! : ) "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?" - 2N2907 These are all great and valid questions you pose!! Thank-you! ...... but the problem is ..... they were all authored by you only! If you were to have had me in the "build" phase of your questions, many of them you would have seen would not have even existed! I'm in the early phase of concept design and development only. My proposed foundation is a two PLC solution. One handling the normal elevator operations and the other functioning in "crippled" mode or "extrication" PLC. In re: "throw/catch" paradigm , I propose to emulate a "fuzzy logic" error handling for the cripple mode PLC to assess the best course of "extrication" available to it. (ie: in one failure scenario, lowering the elevator down to the next floor may be appropriate, but if the failure was from an indicated "shaft door not closed and locked" an alternate plan of extrication would be invoked.) "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." - 2N2907 Correct! ........ but as I just stated above, much more than just a "watchdog PLC" but a decision making PLC (AI?) PLC. "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." - 2N2907 LMAO !!!!!!! : ) NO! : ) .... I can handle it well I assure you! LMAO !!!!! : ) You must be very young! "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." - 2N2907 LMAO !!!!!!!!!!!!! Who are these "people" ?? you know them I take it? quote or show cause their supporting facts that you your self hold true to please. (I 'll be waiting for this one! ) : ) "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". - 2N2907 What Nonsense!!! My PLC is controlling an elevator, it was not "specially built" to control an elevator! yet it does it very well! ..... actually, the PLC itself doesn't know if im controlling an elevator or feeding chickens! .... it doesnt care! It can easily do both! Thank-you for your post ! ..... your thoughts?
×
×
  • Create New...