关于一个数组赋值给另一个数组的问题

我在一个FC里定义一个输入数组kobe1 array[1..2,1..3]of int。一个输出数组kobe2 array[1..2,1..3]of int。然后在该FC块中写程序如下:CALL SFC21 BVAL:=P#L0.0 BYTE 12 RET_VAL:=MW100 BLK:=P#L 12.0 BYTE 12然后在OB1中调用FC块,为什么无法赋值呢,如果这种方法不能赋值,那应该用什么方法么,感谢各位大虾

最佳答案

1、应用 SFC21注意:
、源与目标区域一定不可交叉。
、如果目标区域的长度不为输入参数BVAL的整数倍,则目标区域永远不能写满到最后
一字节。
、如果目标区域长度小于源区域,只拷贝目标区域能容纳的数据。
、如果ANY指针(源或目标)的类型为BOOL,则指定的长度必须能够被8整除;
否则此SFC将不被执行。
2、数据以结构形式输入:
如果将一个结构作为输入参数传送,注意以下事项:
STEP 7总是把一个结构的长度定义为偶数字节数。因此,如果声明一个包含奇数字
节数的结构,需要另加一字节的存储空间。
例如
声明一个结构如下:
TYP_5_BYTE_STRUCTURE :STRUCT
BYTE_1_2 :WORD
BYTE_3_4 :WORD
BYTE_5 :BYTE
END_STRUCT
声明的结构“TYP_5_BYTE_STRUCTURE”需要6字节存储空间。
3、详见:
<S7-300400的系统软件和标准功能>下载:
http://www2.ad.siemens.com.cn/download/Upload/AS/manual/1023.pdf

提问者对于答案的评价:
hehe

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc301273.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年10月31日 下午2:47
下一篇 2020年10月31日

相关推荐