Sign in to follow this  
Followers 0
gendy

Analog force

4 posts in this topic

Hi, I try to make a force for analog input or output on PLC5 i wrte a value on analog output but if the program logic out other value it will change the same for analog input when i try to make extended force file it give me error i enter to the card diagnostic bits i found it clear can any one advice me with the corect way to force the analog input and output for PLC5 and SLC500 many thanks

Share this post


Link to post
Share on other sites
You will have to inhibit the logic which is writing to that analog card. You should then be able to change the output value to any test value you need.

Share this post


Link to post
Share on other sites
the information in the following link might be helpful ... http://www.plctalk.net/qanda/showthread.ph...amp;postcount=1

Share this post


Link to post
Share on other sites
Things get tricker in the PLC/5 for analog IO. A PLC/5 analog input card uses block transfer reads and block transfer writes to transfer analog input and output information to the actual module. Unlike the SLC500 and Micorlogix platforms, in a PLC/5 analog IO data is not actually a part of the PLC/5 IO image table. The BTW instruction transfers a block of N words to the analog output card. N words cannot be forced. For an analog output, somewhere in your program is logic that writes to the N register that gets transfered to the analog output card and you have to do what Bernie suggested and disable the logic that writes to that register. Do not disable the BTW rung that makes the actual data transfer to the analog output card. The BTR instruction transfers analog input information from the card and places it directly in an N register specified in the BTR instruction. N file registers cannot be forced, and if you attempt to change the value the next time the BTR is executed it will get changed back to what the analog input is. For an analog input it gets much tricker. You may need to temporarily change the analog input address used in your program to an un-used memory address that you can change. The address might be used in multiple places in your program. If you are scaling the raw analog data before using it in your program then you can disable the scaling logic and then you can change the scaled data word. If you are using only one analog input, or you are forcing all the analog inputs on a card then it will be easier to just disable the BTR rung with an AFI instruction and then change the values in the address block used by the disabled BTR. You might be tempted to try and just overwrite the data right before the BTW or immediately after the BTR, but the success of this method is dubious because the BTW and BTR instructions merely schedule the data transfer - the actual data transfer occurs asynchronously to the program, which means that the true data transfer can occur at any point during a program scan and not at the point where the BTW and BTR instructions are located. It should go without saying that you must be very careful in doing this that you do not interfere with the process in dangerous ways. Edited by Alaric

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0