Guest irfan Posted March 7, 2004 Report Posted March 7, 2004 See attachment !!! txt file,... ladderlogic.txt Quote
Steve Bailey Posted March 7, 2004 Report Posted March 7, 2004 The 90-30 does not support programming that requires accessing %R addresses at the bit level, which is what you're trying to do in your second rung. LM90-30 won't let you enter a rung like that. Even if it did, your addressing would have to be something like %R0001.01 or %R0001/02, not as you've presented it. %R0001 is a 16-bit address. %R0002 is the next consecutive 16-bit address, not the second bit. I don't know why you don't just use the %I and %Q addresses directly in your program instead of the MOVE instructions, but if you're determined to do it that way, MOVE the %I addresses to %M. A MOVE_INT instruction with %I0001 on the left side of the function, %M0001 on the right side, and the LEN = 1 will move %I0001 to %M0001, %I0002 to %M0002, ....... %I0016 to %M0016. Quote
JimRowell Posted March 7, 2004 Report Posted March 7, 2004 Like Steve says, you're making it more complex than it needs to be. With a Mitsubishi, I'd do it like this: ;Both level sensors should be of a type where they ; close their contacts when liquid is NOT present. ;Fill'Valve will pass liquid when energised. ;Mitsubishi version. LD LOW'LEVEL ;low-level start signal from input. SET FILL'VALVE ;directly set the output (turn it on). LDI /HI'LEVEL ;"not-high-level" enable signal (high-level stop signal from input). RST FILL'VALVE ;turn off the output. It's been a while since I used any Allen Bradley but I believe it would translate like this: XIC LOW'LEVEL ;low-level start signal from input. OTL FILL'VALVE ;directly set the output (turn it on). XIO /HI'LEVEL ;"not-high-level" enable signal (high-level stop signal from input). OTU FILL'VALVE ;turn off the output. Jim Rowell Quote
JimRowell Posted March 7, 2004 Report Posted March 7, 2004 OOPS! I just realized I'm in the GE forum (not AB). Sorry about that! <grin> Anway, the examples should give you an idea. Jim Quote
Guest irfan Posted March 8, 2004 Report Posted March 8, 2004 (edited) Thanks, Steve,.. I have a better view about PLC programming in Series 90-30 now,.. You just explain in your previous answer that %R data type is 16 bit. By the way,.. Can you show me the data type of each address below? because I can't find it in the manual "gfk467m.pdf" which explain the data type of these address directly. Flow, %I, %Q, %M, %T, %S, %G, %R, %AI, %AQ. I don't use %I and %Q directly to keep data in PLC when %I and %Q change state. Is it right ? And about MOVE_INT instruction data type : I think if we put %I0001 on the left side with LEN=1 and %M0001 on the right side it will only move 1 data %I to 1 data %M : %I0001 to %M0001 For LEN=2 If we put %I0001 on the left side and %M0001 on the right side It will only move 2 data %I to 2 data %M : %I0001 to %M0001 %I0002 to %M0002 For LEN=3 If we put %I0001 on the left side and %M0001 on the right side It will only move 3 data %I to 3 data %M : %I0001 to %M0001 %I0002 to %M0002 %I0003 to %M0003 and so on,...... Thanks again,.. Irfan Edited March 8, 2004 by irfan Quote
Steve Bailey Posted March 8, 2004 Report Posted March 8, 2004 %I, %Q, %M, %G, %S, %T are discrete (On/Off) data types. %R, %AI, %AQ are 16-bit registers. These are all covered in Chapter 2 of GFK-0467m, starting on page 2-20. When you use the MOVE_BIT instruction, it behaves as per your expectations. The LEN parameter refers to the number of bits. When you use the MOVE_INT instruction, the LEN parameter refers to the number of 16-bit integers. When you use Logicmaster software and select a MOVE instruction, the default data type is INT. You have to change it to BIT, DINT, or REAL. When using VersaPro or CME software, you select either MOVE_INT, MOVE_DINT, MOVE_REAL, or MOVE_BIT from a list. Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.