Hi, I have an indirect addressing question that I just can't understand.
L #DB_Conn
T #iDB
OPN DB [ #iDB]
L #DB_Start_Addr
SLD 3
LAR1
A DBX [ AR1 , P#0.0 ]
= #Advance_INT
A DBX [ AR1 , P#0.1 ]
= #Retract_INT
A DBX [ AR1 , P#0.6 ]
= #Advance_IND
A DBX [ AR1 , P#0.7 ]
= #Retract_IND
A DBX [ AR1 , P#1.0 ]
= #Valve.Error
A DBX [ AR1 , P#1.1 ]
= #Valve.Both_M
A DBX [ AR1 , P#1.2 ]
= #Valve.Both_NM
A DBX [ AR1 , P#1.3 ]
= #Valve.Adv
A DBX [ AR1 , P#1.4 ]
= #Valve.Ret
A #Valve.Advance_PB
= DBX [ AR1 , P#0.2 ]
A #Valve.Retract_PB
= DBX [ AR1 , P#0.3 ]
DB_Conn is the datablock address and DB_Start_Addr is the starting address.
I also pass a In/Out #Valve UDT datatype because there is inputs as well.
When I use the Valve datatype, the indirect addressing does not work, but when I link the results direct to outputs (Advance_INT, ...) it does get results.
I am using TIA Portal.
Any ideas or what am I doing wrong?
L #DB_Conn
T #iDB
OPN DB [ #iDB]
L #DB_Start_Addr
SLD 3
LAR1
A DBX [ AR1 , P#0.0 ]
= #Advance_INT
A DBX [ AR1 , P#0.1 ]
= #Retract_INT
A DBX [ AR1 , P#0.6 ]
= #Advance_IND
A DBX [ AR1 , P#0.7 ]
= #Retract_IND
A DBX [ AR1 , P#1.0 ]
= #Valve.Error
A DBX [ AR1 , P#1.1 ]
= #Valve.Both_M
A DBX [ AR1 , P#1.2 ]
= #Valve.Both_NM
A DBX [ AR1 , P#1.3 ]
= #Valve.Adv
A DBX [ AR1 , P#1.4 ]
= #Valve.Ret
A #Valve.Advance_PB
= DBX [ AR1 , P#0.2 ]
A #Valve.Retract_PB
= DBX [ AR1 , P#0.3 ]
DB_Conn is the datablock address and DB_Start_Addr is the starting address.
I also pass a In/Out #Valve UDT datatype because there is inputs as well.
When I use the Valve datatype, the indirect addressing does not work, but when I link the results direct to outputs (Advance_INT, ...) it does get results.
I am using TIA Portal.
Any ideas or what am I doing wrong?