我想访问CAPL中的IG块,例如激活/取消激活消息发送,设置信号值。但我没有找到这种capl功能。
答案 0 :(得分:1)
您需要在CAPL中声明自己的消息,然后您应该使用函数"输出"在CAN上发送它。下面的示例发送ID为0x100且周期为100ms的消息。
enter code here
variables
{
msTimer timer200ms;
msTimer timer100ms;
message 0x100 msg = {
DLC = 8,
byte(0) = 0x00, byte(1) = 0x00, byte(2) = 0x00, byte(3) = 0x00,
byte(4) = 0x00, byte(5) = 0x00, byte(6) = 0x00, byte(7) = 0x00
};
byte myByte[8];
}
on timer timer200ms{
int i=0, j=0;
if(i<7){
if(j<256){
myByte[i] = j;
write("frame %d have been change for %d", i, j);
j++;
if(j==255){
i++;
j=0;
}
}
}
else{
cancelTimer(timer200ms);
}
}
on timer timer100ms{
msg.byte(0) = myByte[0];
msg.byte(1) = myByte[1];
msg.byte(2) = myByte[2];
msg.byte(3) = myByte[3];
msg.byte(4) = myByte[4];
msg.byte(5) = myByte[5];
msg.byte(6) = myByte[6];
msg.byte(7) = myByte[7];
output(msg);
}
on start{
setTimerCyclic(timer100ms, 100);
setTimerCyclic(timer200ms, 100);
}
答案 1 :(得分:0)
您必须在按键或连接到Panel的功能上执行某些功能,IG只是一种更简单的发送消息的方式,但您无法将Capl与IG连接,因为它们是不同的节点。