Jump to content

RickL

Members
  • Posts

    111
  • Joined

  • Last visited

  • Days Won

    2

RickL last won the day on October 19 2023

RickL had the most liked content!

Profile Information

  • Gender
    Male
  • Interests
    Hot looking babes and PLC's

Recent Profile Visitors

1,326 profile views

RickL's Achievements

UniGuru

UniGuru (4/4)

3

Reputation

  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!! : )
×
×
  • Create New...