What is constrained in my PLC that max # is 32767

Alanvan

Member
Join Date
Aug 2004
Posts
1
My question is I am trying to increase Pressure on my Ge Fanic versa Pro software to a value above 80psi. I can set this pressure with the input IN1 anywhere from 1-73 and IN2=455 this value translates to pressure changes from basically 4 psi to max of 80 psi. I need my line pressure of 120psi but after I enter a # above 73 in IN1 the ouput # displayed in red goes to 32767 and no matter what higher # I enter I can't change this # to increase my pressure. How is this # constrained and can I change it to get a higher pressure. What is IN2 all my programs use 455 only IN1 is changed in the values to change the Pressures, times or temps. Help Thanks Alan
 
32767 is the maximum value that will fit into a 16-bit signed integer (range -32768 to +32767). It sounds like you're using a MUL_INT (integer multiply) instruction. Change to a MUL_DINT (double integer) or MUL_REAL (floating point) function.

Remember that if the value at either the IN1 or IN2 or Q nodes is contained in a %R register or %AI analog input or %AQ analog output, then the MUL instruction will use the two consecutive addresses and you'll get unexpected results.
 
2 to the 15th (2^15) is 32768. The 16th bit is used for the sign bit (plus or minus). Therefore, your analog data is stored in one word of data, or 16 bits.
 
Let's keep this public

Alanvan sent me this PM:

Your right that is what Im using is a mul_INt. BUt you also replied about if I changed this to a Mul_Dint then if these #'s are contained in a %R register or %AI analog input or %AQ analog output, then the MUL instruction will use the two consecutive addresses and l'll get unexpected results. How do I then change these or verify that these are as you say as I think they are contained here under the variable decleration. Bottom line is I need 32767 to equal my line pressure of 110psi not 80 psi so if there is any other way then that would be ok to. Such as why can't I make 32767 equal line pressure of 110psi. Thank you Alan

I think it would be helpful if you post your code. It sounds like you're trying to scale an analog input signal, but I'm not sure what the values of 73 and 455 represent.

If you enter a MUL_DINT instruction:

__________
| MUL_DINT |
| |
| |
%R001 | | %R003
-|IN1 Q |-
| |
| |
CONST | |
73 -|IN2 |
|__________|



The function will take whatever is in registers %R001 and %R002, interpreted as a 32-bit integer with %R001 as the LSW, multiply it by 73 and store the 32-bit result in %R003, %R004.
 
Bottom line is I need 32767 to equal my line pressure of 110psi not 80 psi so if there is any other way then that would be ok to. Such as why can't I make 32767 equal line pressure of 110psi.

Sounds like some changes in the scaling is in order, you can make that input of 32767 represent any other number, that's easy, it's called math. Now to make the input value actually represent a "real world" value will require proper scaling.
I suggest you do a search of this forum, archives too, there has been ALLOT of threads dealing with the proper scaling practices.
 

Similar Topics

The past week we received a new piece of equipment from Germany which utilizes siemens controls. Typically in our company we use A.B. controls for...
Replies
4
Views
50
the conveyor can stop because of a safety sensor or safety switch. And also it can stop because of an object jam detector sensor. If the conveyor...
Replies
5
Views
133
Good Day to all of you, this is my first post, i will try to explain as best as possible, english is not my natural language. I am performing an...
Replies
0
Views
29
Hi All, Someone at work has put a PLC system on my desk, that's just been taken off an idle production line. He said "It's an S7 PLC. We don't...
Replies
10
Views
206
I have a project to automate four generator sets. The system will monitor and store the load demand of the factory. Once there's Power outage, the...
Replies
0
Views
57
Back
Top Bottom