菜鸟提问:
SIMOTION中有些变量在程序中使用 := 赋值后,D445中的变量实际值未发生变化,还是原来的值?
但是其他的一些改变后,D445中的变量实际值发生变化。 这是什么原因呢?
斑竹:
哎 这种问题问得.... 大哥 你打个比方贴个程序上来也好啊 赋值语句 其实就是看你程序怎么写的
菜鸟:
不好意思,这几天忙,忘了登网页,程序是这样的,
VAR_GLOBAL RETAIN
ga_pos_X:ARRAY[0..NUM_POINTS] OF REAL:=[10.0,10.0,30.0,30.0,10.0];
ga_pos_Y:ARRAY[0..NUM_POINTS] OF REAL:=[8.0,2.0,7.67,4.0,8.0];
END_VAR
其中NUM_POINTS为4,这种赋值的,**次下载后ga_pos_X与ga_pos_Y里面的值是上面赋的值,但是后期我对赋程序进行更改如:
VAR_GLOBAL RETAIN
ga_pos_X:ARRAY[0..NUM_POINTS] OF REAL:=[1.0,2.0,3.0,4.0,5.0];
ga_pos_Y:ARRAY[0..NUM_POINTS] OF REAL:=[2.0,3.0,4.0,5.0,6.0];
END_VAR
程序下载后ga_pos_X与ga_pos_Y里面的值还是**次赋的值,这是怎么回事?
但是我的程序别的地方
VAR_GLOBAL CONSTANT
g_RP100_PRD_SPEED : INT := 1;
END_VAR
我将此值更改后他就发生了变化,为什么同样是赋值就不一样呢?
斑竹:
变量名字,类型都没变。数据块不会初始化。
增加个变量再下载就会重新初始化。
初始值和赋值是两回事。
var
;
end var
相当于一个数据块
你的是变量初始值 不是赋值语句 狮子说的是对的 需要初始化 可以加变量 也可以将卡回复出厂 然后再下进去
菜鸟:
原来已经下载到D445里的程序是这样的,
VAR_GLOBAL RETAIN
ga_pos_X:ARRAY[0..NUM_POINTS] OF REAL:=[10.0,10.0,30.0,30.0,10.0];
ga_pos_Y:ARRAY[0..NUM_POINTS] OF REAL:=[8.0,2.0,7.67,4.0,8.0];
END_VAR
VAR_GLOBAL CONSTANT
g_RP100_PRD_SPEED : INT := 1;
END_VAR
其中NUM_POINTS为4,这种赋值的,**次下载后ga_pos_X与ga_pos_Y里面的值酒是上面赋的值,g_RP100_PRD_SPEED也是1,但是后期我对赋值程序进行如下更改并进行了下载:
VAR_GLOBAL RETAIN
ga_pos_X:ARRAY[0..NUM_POINTS] OF REAL:=[1.0,2.0,3.0,4.0,5.0];
ga_pos_Y:ARRAY[0..NUM_POINTS] OF REAL:=[2.0,3.0,4.0,5.0,6.0];
END_VAR
VAR_GLOBAL CONSTANT
g_RP100_PRD_SPEED : INT := 8;
END_VAR
程序下载后ga_pos_X与ga_pos_Y里面的值还是**次赋的值,但是g_RP100_PRD_SPEED的值已经发生变化变为了 8 ,这是怎么回事? 实际情况是存在的,期间也没有“增加个变量”的情况。