展开查看
以下是引用z100o在2014-11-03 14:37:43的发言 >楼主:第二网络
TAR1 #AR1_Stack
第三网络
L #Adress_Drive // lade die Adresse
SLD 3 // schiebe die Byteadresse um 3 nach links
LAR1 // und ablegen ins Adressregister 1
L PIW [AR1,P#0.0] // lade 1. Pheripheriewort
T DBW 30 // und ablegen in RCV_PZD1_ZSW1
L PIW [AR1,P#2.0] // lade 2. Pheripheriewort
T DBW 32 // und ablegen in RCV_PZD2_HIW
L PIW [AR1,P#4.0] // lade 3. Pheripheriewort
T DBW 34 // und ablegen in RCV_PZD3
地址寄存器初始地址为6.0
变频器地址为1080
请问装载的第一个PIW是多少,我认为是6,但是组态里面只有3个pzd ,地址为1080~1085
这样不是读不到东西了,请问谁帮我解释一下 不胜感激
TAR1 #AR1_Stack 是保存AR1寄存器类容。以便在执行完相关程序后恢复AR1寄存器用 LAR1 #AR1_Stack
变频器地址是1080 你指的是什么?硬件配置里面的LADDR 地址吗?
如果是这样的话,那么 在执行完
L #Adress_Drive // lade die Adresse
SLD 3 // schiebe die Byteadresse um 3 nach links
LAR1 //将LADDR 的指针地址装载到AR1中
AR1指向地址P#1080.0,上面三个语句的功能是,把LADDR转换成指针地址。
L PIW [AR1,P#0.0] // lade 1. Pheripheriewort 此语句是L PIW1080
T DBW 30 // und ablegen in RCV_PZD1_ZSW1
L PIW [AR1,P#2.0] // lade 2. Pheripheriewort 此语句是L PIW1082
T DBW 32 // und ablegen in RCV_PZD2
_HIW
L PIW [AR1,P#4.0] // lade 3. Pheripheriewort 此语句是L PIW1084
T DBW 34 // und ablegen in RCV_PZD3