发表于:2019/11/10 21:24:49
#0楼
此贴内容大部分来自<施耐德somachine控制器应用技巧120例>中的1.3.21章节
创建一个字符串数组变量
var_global
teststring at %mw0 :array[0..3] of string(5);
end_var
给数组赋值
teststring[0] := "1234";
teststring[1] := "2345";
teststring[2] := "3456";
teststring[3] := "4567";
监视变量如下图
以第一组创建的字符串为例,其字符个数为5个,
则该字符串自动占用5+1个字节地址(%mb0~%mb5).
字符串数组中的字符为"1234",共4个字符,则实际占用的字节数量为4+1=5(%mb0~%mb4),
而实际分配的字节数量为6个,因此,第六个字节(%mb5)被自动分配, (为什么呢?)
但是可以写入数据.而第4+1=5个字节(%mb4)无法写入数据,
teststring[0]: 占用的%mb0~%mb5;其中0~3里是字符数据,4强制为0 5 被占用.可写入数据,以此类推
teststring[1]:%mb6~%mb11
teststring[2]:%mb12~%mb17
teststring[3]:%mb18~%mb23
如果写入的字符数量超过变量定义的最大字符数,则后面的自动丢失.
如下图 赋值1234567 由于字符串定义的是5个字符.所以这个值只显示了"12345"
之前好像看过一个文字说.如果在声明string变量的后面不标注的话.默认是占8个字节.找不到出处了
希望知道的朋友告诉一声
创建一个字符串数组变量
var_global
teststring at %mw0 :array[0..3] of string(5);
end_var
给数组赋值
teststring[0] := "1234";
teststring[1] := "2345";
teststring[2] := "3456";
teststring[3] := "4567";
监视变量如下图
以第一组创建的字符串为例,其字符个数为5个,
则该字符串自动占用5+1个字节地址(%mb0~%mb5).
字符串数组中的字符为"1234",共4个字符,则实际占用的字节数量为4+1=5(%mb0~%mb4),
而实际分配的字节数量为6个,因此,第六个字节(%mb5)被自动分配, (为什么呢?)
但是可以写入数据.而第4+1=5个字节(%mb4)无法写入数据,
teststring[0]: 占用的%mb0~%mb5;其中0~3里是字符数据,4强制为0 5 被占用.可写入数据,以此类推
teststring[1]:%mb6~%mb11
teststring[2]:%mb12~%mb17
teststring[3]:%mb18~%mb23
如果写入的字符数量超过变量定义的最大字符数,则后面的自动丢失.
如下图 赋值1234567 由于字符串定义的是5个字符.所以这个值只显示了"12345"
之前好像看过一个文字说.如果在声明string变量的后面不标注的话.默认是占8个字节.找不到出处了
希望知道的朋友告诉一声
水平一般,能力有限.如有错误之处.欢迎并感谢指出.我一定认真学习积极改正.请勿DISS.