kpetro07 Posted February 2, 2019 Report Posted February 2, 2019 Hello all, this is the first time I am writing to this forum. We were using vision plcs and now is the first time we are using unistream. We have connected the cards through USP-TCP. For the analogue input we are using the card URA-0800O and we set the input 4-20mA. The sensor we are using is 4-20mA 0-150oC. We tried linearization but the output value is wrong. In X1 we entered the value 818 and X2=4092. in Y1 we entered the value 0 and Y2=1500 but the output value is 0 and does not change. When we change the Axis values (y1=818,y2=4092,x1=0,x2=1500) in linearization, shows an output value but is 10-15 degrees less than the actual temperature. Are we doing something wrong? Thanks
MVP 2023 Flex727 Posted February 2, 2019 MVP 2023 Report Posted February 2, 2019 You don't need to use a linearization function block with UniStream. Just set the min and max values in the analog input definition (0 & 1500).
kpetro07 Posted February 2, 2019 Author Report Posted February 2, 2019 26 minutes ago, Flex727 said: You don't need to use a linearization function block with UniStream. Just set the min and max values in the analog input definition (0 & 1500). Where? I could not find where to insert min and max values.
MVP 2023 Flex727 Posted February 2, 2019 MVP 2023 Report Posted February 2, 2019 Go to the Help file. Search on Analog and select Configuring Analog I/Os.
kpetro07 Posted February 2, 2019 Author Report Posted February 2, 2019 1 hour ago, Flex727 said: Go to the Help file. Search on Analog and select Configuring Analog I/Os. How can I find the window that shows in help file where I can add values for min and max?
MVP 2023 Flex727 Posted February 3, 2019 MVP 2023 Report Posted February 3, 2019 Ah, sorry, didn't realize you were using the remote I/O. I guess that's a bit different.To troubleshoot that it would be best to go online and look at the raw value without using the linearization function - no reason to try to troubleshoot two things at once. If the raw value isn't changing, then you need to look at your hardware connections.
kpetro07 Posted February 3, 2019 Author Report Posted February 3, 2019 9 hours ago, Flex727 said: Ah, sorry, didn't realize you were using the remote I/O. I guess that's a bit different.To troubleshoot that it would be best to go online and look at the raw value without using the linearization function - no reason to try to troubleshoot two things at once. If the raw value isn't changing, then you need to look at your hardware connections. The raw value is changing. When we try linearization the value is wrong.
MVP 2023 Flex727 Posted February 3, 2019 MVP 2023 Report Posted February 3, 2019 I think you're setting up the linearization function properly (though X1 & X2 should be 819 & 4095, respectively, but that is inconsequential to this problem). If you can see the actual analog raw value changing appropriately and you have the linearization function set up properly, then the problem must be that the linearization function is not being called for some reason. Make sure the program is downloaded to the PLC and make sure the function is not in a subroutine that's not being called. If you post your program here, someone will try to help troubleshoot your code.
kpetro07 Posted February 4, 2019 Author Report Posted February 4, 2019 14 hours ago, Flex727 said: I think you're setting up the linearization function properly (though X1 & X2 should be 819 & 4095, respectively, but that is inconsequential to this problem). If you can see the actual analog raw value changing appropriately and you have the linearization function set up properly, then the problem must be that the linearization function is not being called for some reason. Make sure the program is downloaded to the PLC and make sure the function is not in a subroutine that's not being called. If you post your program here, someone will try to help troubleshoot your code. attached you will find the program. the value is correct for temperatures above 50oC. test 2.ulpr
MVP 2023 Ausman Posted February 4, 2019 MVP 2023 Report Posted February 4, 2019 1 hour ago, kpetro07 said: the value is correct for temperatures above 50oC. Are you saying that there is still a 10-15° error, but it is only happening below 50°?
kpetro07 Posted February 4, 2019 Author Report Posted February 4, 2019 2 hours ago, Ausman said: Are you saying that there is still a 10-15° error, but it is only happening below 50°? Yes. 6-8oC error below 50oC
MVP 2023 Joe Tauser Posted February 4, 2019 MVP 2023 Report Posted February 4, 2019 Basic troubleshooting. Use a known reference to determine which device is screwed up. Time to get your loop calibrator out and pump several known current values into the analog input card. You should be able to calculate what raw values should be for different input values. This will tell you whether your analog input card is accurate or not. Joe T.
kpetro07 Posted February 19, 2019 Author Report Posted February 19, 2019 hello, with the attached program the value is correct and we have not understand why. Also in the program, because we will control many valves, we have created user defined function as temperature controller (with function out set and reset for the coil) , but in the main function we do not get output from the user defined function. Are we doing anything wrong? test_tempcontroller.ulpr
Gabriel Franco Posted February 19, 2019 Report Posted February 19, 2019 You are using direct contacts instead of coils for VALVE SET / VALVE RESET
kpetro07 Posted February 20, 2019 Author Report Posted February 20, 2019 11 hours ago, Gabriel Franco said: You are using direct contacts instead of coils for VALVE SET / VALVE RESET Still the same problem. resetvalve1 stays 1 and does not change. test_tempcontroller.ulpr
MVP 2023 Joe Tauser Posted February 21, 2019 MVP 2023 Report Posted February 21, 2019 You've defined a UDFB called temp_controllers, using local and function tags. Local tags are destroyed and recreated every scan, so in the first two networks, you are comparing an input variable ("indicator") to something that hasn't been created yet ("indminus2") and making a decision to set a local output coil. It's not going to work right in this order. You must think like the PLC - solve top to bottom, left to right. Unless you're going to have a lot of instances of this temp_Controller function I would stay away from UDFBs until you get more comfortable with UniLogic in it's regular form. Just write ladder code as you normally would. Joe T.
Carlos O. Posted August 9, 2021 Report Posted August 9, 2021 This is an old post but I had the same issue with the URA-0800O Analog Input module using the URB-TCP adapter. My application involves the temperature monitoring from -100 to 100°C. I also used the two Built-In Analog Inputs of my US7-B10-TR22 Controller without problems. The linearization block works well with negative to positive values for the Built-In Inputs, but not for the Remote Inputs. I tested the linearization block with X1=0, Y1= 0 and X2=4095 Y2=200 and it reads accurately for the remote, so I ended moving the result to a formula block and substracting 100. In that way when the controller reads 0 it will be -100 and when it reads 200 it will be 100, keeping the same original span (200). I hope this helps somebody!
MVP 2023 Joe Tauser Posted August 9, 2021 MVP 2023 Report Posted August 9, 2021 Thank you for sharing your experience. Joe T.
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