MVP 2023 Ausman Posted December 27, 2015 MVP 2023 Report Posted December 27, 2015 Seasons greetings to all! One for the creators in particular. Would it be possible to have a minimum and maximum put into the Linearisation function so that I don't have to do extra equations "externally" to achieve this? Nearly all the Linz I do are only active over a certain range, and I have to write compares to set the high or low figure that over-rides the output once the input ranges are exceeded either way. It would make things vastly easier if it could be done within the Linz function itself. Pls lend support to this idea so that it might get done! Or let me know if I have been dumb and missed an easy way of doing this! cheers, Aus.
EduMarg Posted December 28, 2015 Report Posted December 28, 2015 Hello Ausman, Season gratings and Happy holidays. First of all, what PLC are you using -Vision, Jazz or M90/91-? Can you please give more information on how you use the maximum and minimum value? When you mention that the the linearization is only valid on a certain range -between a maximum and a minimum values- this means that outside this range the values are not linear? Or is still linear but you don't wish to take those values in account? If as you mention the linearization is only valid on a certain range -between a maximum and a minimum values-, and you know both the X and Y value of this maximum and minimum, then this are the values you will use on the X1/Y1 and X2/Y2 values of the FB. Remember that the linearization FB uses the line equation to determine the line between two point, you can take any two point inside the line to create the same equation. You could also use the compare function "within range" before the linearization FB so it will only be active between the range you need it to work. Best Regards,
MVP 2023 Ausman Posted December 28, 2015 Author MVP 2023 Report Posted December 28, 2015 Hi again, and thanks EduMarg, I am well used to using Linearisation. My PLCs are usually V130s on this sort of thing, but the problem is generic. The easiest way of explaining better is a theoretical example using temperature: From 22C to 24C I need to linearise an output to a variable speed motor over a partial amount of its span, say from 6 to 8ma. Between 24-28C the output stays at 8ma. From 28-36C the output again gets linearised from 8-13.5ma. 36-52C it stays at 13.5ma. 52-120C it gets linearised from 13.5ma to 20ma. For this to happen I have to do multiple compares and stores related to each linearisation to make the output stay at the desired ma once the input goes through the range that needs the particular lin. A different example is that even if you only have one lin, but don't want the output to vary when your input goes above or below certain levels, you still need 2 compares and stores as the output just proceeds along the path dictated by the lin parameters. I hope this explains it better. The linearisation function does not have max/min output settings, the output will continue to increase/decrease in the straight line derived from the lin settings. Cheers, Aus
MVP 2023 Ausman Posted December 28, 2015 Author MVP 2023 Report Posted December 28, 2015 And to perhaps make it clearer again, Write a new program that simply has a Linearisation. Make X1 1000, Y1 1000, X2 2000, Y2 4000. Run the program on the plc and manually vary your input. You will find that if you give it an input smaller than X1, or greater than X2, the output will run outside the Y1 & Y2 values. eg. Input 1500 and out comes 2500, which is within range. Input 500 and you get -500, whilst input 3000 and you get 7000. The output doesn't stop at the Y1 & Y2 values. That is what I am wanting. The ability to set a max and min value as part of the function. And perhaps also have a look at my post: /topic/3540-linearization-calculator-for-all/. My calc imitates the actual plc ops. cheers, Aus
cscheda Posted December 29, 2015 Report Posted December 29, 2015 I have done this before and it worked out great for the process I was programming. I call it the "Poor Mans PID"
EduMarg Posted December 29, 2015 Report Posted December 29, 2015 Ausman, Thank you for explaining it better. This suggestion will be taken in account to see if it will be possible to add on a future version of VisiLogic. Best Regard and happy new year.
MVP 2023 Ausman Posted December 30, 2015 Author MVP 2023 Report Posted December 30, 2015 Thanks EduMarg, that is great. I also feel compelled to mention that another brand I work with has a linearisation function where you can specify multiple X Y relationships throughout the input range. It maps out points derived from what would be a sequential set of MIs in Unitronics language. These give the matching X & Ys for however many points you want to specify, to give you a varying relationship to the rising input. So it is still straight line based and not really a "curve", but for my needs it is very handy and vastly easier than the existing Unitronics method. ie one ladder entry as against a vast number of them! The ladder entry would look something like [LINZEXTENDED -- Input -- Curve Specs start location -- Specs length -- Output] cheers, Aus
PeterFukt Posted November 28, 2017 Report Posted November 28, 2017 Hello VisiLogic creators! I see that this function is still not implemented in the program. I have made a program that use several linearization blocks and for each one, I must use two compares and two store direct to prevent the output from getting false values when the input goes outside the X1-X2 range. It would be great if you could implement an option so that the Y value only stay within the Y1-Y2 range, even if the X input is larger or smaller than the X1-X2 range. Any plans of doing so in a future update? Best regards Peter
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now