Jump to content

News and Announcements

Forums

  1. Latest Release! UniLogic V1.28 introduces Motion: Servos & Motors plus OPC UA server!   (16,938 visits to this link)

    Our latest release launches a major addition to our All-in-One Solution: Motion Control. Our full range of Servos and Motors is easily programmed in UniLogic; the Ladder editor offers PLCopen-compliant MC Function Blocks. In addition, Unitronics supplies you with Ready-made Motion code; this enables you to immediately get moving with your Motion system.

    UniLogic greatly simplifies servo applications by enabling you to:

    • Drag & drop drives and motors into your project: UniLogic automatically defines the correct configuration and automatically sets up communications for you
    •  Add up to 8 Axes, drag & drop actuators; UniLogic automatically converts units
    • Benefit from automatic calculations: UniLogic analyzes the mechanical properties of your selections and recommends safe values
    • Use the Ready-made Motion application to execute movements, such as Point-to-Point, Jog, and Homing--you can open this application and edit as needed to adapt it to your motion requirements
    • Program Motion Control via drag & drop, using industry standard motion Function Blocks (PLCopen)
    • Tune your system using a single parameter
    • Diagnostics: View servo run-time performance via UniLogic’s built-in powerful, high-speed scope

    Another major feature of this release is OPC UA - UniStream controllers can now act as OPC UA servers.
    Click here to see the full list of version changes. 

    Click here to download the latest version of UniLogic.

     

     

  2. VisiLogic:9.8.64 - Link to mobile app, Ladder: 2x the Space!   (14,527 visits to this link)

    This major release introduces a number of new features that will boost your productivity, such as wide Ladder nets and dynamic I/O configurations.

    In addition, when you install this version and open it for the first time, a pop-up will allow you to access app store links for Unitronics’ Remote Operator for Mobile app. For the complete rundown, read the version changes at https://unitronicsplc.com/software-visilogic/

  3. New!!! ***** U90 Ladder*****   (8,538 visits to this link)

    U90 Ladder 6.3.0, OS 2.20 B00 supports new Jazz models JZ20-R10, JZ20-R16, and JZ20-R31 in Hardware Configuration. These models are 30x faster than JZ10 models,  have twice the memory,  comprise integral USB programming ports.
    Read the version changes at: https://unitronicsplc.com/software-u90-for-programmable-controllers/

  • Member Statistics

    5,289
    Total Members
    501
    Most Online
    Corey
    Newest Member
    Corey
    Joined
  • Topics

  • Who's Online (See full list)

  • Posts

    • Almost never. Multiply by 100 or 1000 (or whatever precision you need) in your linearization function block and then keep track of the location of the decimal point through any subsequent calculations. The HMI display function for integers has a handy virtual decimal point that you can use for display. I spend most of my time with VisiLogic rather than UniLogic, but my recollection is that the 16-bit integer registers are signed (VisiLogic has both signed and unsigned 32-bit registers, and only signed 16-bit registers - I think UniLogic is the same). Just use negative numbers as you normally would. Just be careful about register overflow and divide by zero. It seems I'm always dealing with converting flow rates to volume (most of the time) and volume measurements to flow rate (less often). Either many system designers don't understand that they need to use the proper sensor for the job at hand or they just go with whatever is cheaper at the moment (sometimes you need both flow and volume so conversion is necessary regardless). Converting between those two domains is very cumbersome and elegant solutions are rare. For converting flow to volume, you need to integrate. I just time slice the flow (usually in 100ms increments) and sum (there is some additional math involved to get the units correct). For the reverse, you just have to measure the volume as often as you can, calculate the time interval and filter as heavily as needed to get something approximately matching reality. If there's a better way, I sure would like to hear it.
    • Good morning and happy Friday to all! I am still learning the ropes of PLCs ladder logic, etc and I am hoping to get some suggestions.  I am from the world of traditional code-writing and microcontrollers, so the handling of arrays and datatypes within ladder logic has been a bit of a learning curve.  Here's my situation: I am using a 4-20ma signal from a laser to measure the level of a material within a tank.  The tank has a rotating arm which periodically passes through the laser beam.  To filter this out, I am taking a measurement every .1 seconds and writing it to the 0th element of an array (after shuffling the rest of the values).  I am taking the minimum element of that array as the true level at that moment (arm in front of the beam will only make the measurement appear higher, never lower). I am taking the 'true level'/minimum measurements and writing them to another 10 element array every 0.1s, same scheme, shuffling, etc.  I have a third 10 element array in order to do calculations on the rate of change from the 0th element to the 1st, 2nd, 3rd, 4th, etc.  Essentially I am working to get the volumetric flow out of this tank....   The issue I'm having is that I am getting only whole numbers, and non-negative numbers.  The order of magnitude and precision should be X.XX.  I am only getting the integer portion, unsurprisingly. I used a formula function block and did my calculations in there.  Very handy.  Avoided me having to add another function block to divide by 0.1, 0.2, 0.3, 0.4 etc.  (Also, that was giving me datatype errors using the MULT function block).   I realize I've given a lot of details and not asked any questions directly, so here goes: 1.  When is the 'right' time to use real numbers? 2.  Given I only need 3 significant digits of precision, should I multiply my values by 100 or 1000 and format it on the HMI to show the decimal place? 3.  If I want to know both positive and negative values, should I use multiply by 100 or 1000 AND choose 32768/2 as the zero point?  As in, shift the values, so that below 16384 represents a negative volumetric flow? 4.  Are there better ways to handle arrays than creating multiple arrays just to store 9 elements, then move them back to the original array, or copying a whole array just to run numeric operations?  For example, is there a clever/elegant way to calculate the volumetric flow from the 0th element to the 1st, 2nd, 3rd, so on...getting 9 values and averaging, sorting, etc. to get a less noisy signal?     Kindest regards!    
    • In rung 9 try calling connect function over a transition contact. Also looks like you are connecting to 2 slaves simultaneously over the same socket, I think this won't work, you need to connect to first slave, run Modbus commands, disconnect, connect to second one, run Modbus for second one. Or use two sockets. Tell us how it goes.
    • I did quick fiddle with the data in Excel.  It looks like an offset of -45 counts and then a linear scaling error of -2.4% over the range of the input. Fluke(ma) Actual Count Expected Count Count Diff. Data without offset Percentage Error 4.000 -45 0 -45 0   6.000 954 1024 -70 -25 -2.44% 8.000 1954 2048 -94 -49 -2.39% 12.000 3953 4096 -143 -98 -2.39% 14.000 4957 5119 -162 -117 -2.29% 16.000 5951 6143 -192 -147 -2.39% 18.000 6951 7167 -216 -171 -2.39% 20.000 7949 8191 -242 -197 -2.41%     I would not expect this as normal behaviour.  The spec sheet gives accuracy of 0.4%.   However, apart from the offset and scaling errors, the data looks quite clean.  Usually a bad input won't even perform this well. Were you able to test with the field wiring completely disconnected from the analogue module (that includes the commons as well as the signal lines)? I notice you are a few versions behind on UniLogic, the current version is 1.28.34.  I doubt the issue is version related, but I would suggest upgrading at some point.  I'd be pushing into a more thorough diagnosis of the hardware and field wiring first. Hope this helps,    
    • During calibration of a pressure sensor (4-20ma) I was unable to achieve an precise calibration 0 to 30.00 PSIA within 0.7 PSIA at the lower or upper range when using the scaling functions. The sensor was calibrated from the manufacture within 0.1% accuracy. I decided to check the Analog Input with a calibrated Fluke Processmeter from: 4.000 ma to 20.000ma. The Hardware was configured for 4-20ma input and default scaling 0 to 8191 inputs with strong filtering enabled.  Unilogic version 1.22.13 Here are the results: Fluke(ma) Actual Count Expected Count Count Diff. 4.0000 -45 0 -45 6.0000 954 1024 -70 8.0000 1954 2048 -94 12.0000 3953 4096 -143 14.0000 4957 5119 -162 16.0000 5951 6143 -192 18.0000 6951 7167 -216 20.0000 7949 8191 -242 The counts are non-linear corresponding to the 4-20ma inputs, i would expect the counts difference to be constant. I was not able to check all the channels, but could this be just a bad channel or are the values within the specification of the AI card?  
  • Blog Entries

×
×
  • Create New...