描述
下面的例子 (用两个数据块变量参数化的“MOVE”指令) ,说明了在 STEP 7 Basic V10.5 中怎样把一个实数数据类型的数据变量转化成一个具有绝对地址的4字节域。数据块“data_db_1” [DB144] 包含“Array [0 ... 100] ”数据类型的“Buffer”变量,数据块“data_db_2” [DB2] 包含“实数”数据类型的“real_test1”变量。n
在图. 01中,用“MOVE”指令把数据从 DB2 的“实数”数据类型的变量传送到数据块 DB144 中的 4 字节域。用 DB 变量参数化“MOVE”指令后,DB 变量“data_db_2.real_test1”变成红色。n
图01n
在编译过程中监视窗口里出现下面两条错误信息:n
- “实际参数实数与形式参数 DWord 数据类型不匹配。”n
- “实数数据类型隐式转换成 DWord 数据类型是不能实现的。”
补救措施
下表列出了上面提到的寻址的补救方法:
No. | 步骤 |
1 | 在另一个网格中第二次插入“MOVE”指令。 |
2 | 然后替换“MOVE”指令的变量参数。在这个例子中,DB 变量“DB144.DBD10”有“IN”参数,DB 变量“data_db_2.real_test1”有“OUT1”参数。之后,DB 变量“DB144.DBD10”变红。 |
3 | 用第二个“MOVE”指令把“IN”参数的 DB 变量的字节地址从“DB144.DBD10”改成“DB144.DBD12”为例。当变换完成后红色消失。 |
4 | 接下来,在第一个网格中按照上面第三点描述的方法用“MOVE”指令把“OUT1”参数的 DB 变量做同样的转换。当变换完成后,DB 变量“data_db_2.real_test1”的红色也消失了。 n
图02 |
5 | 删除带有第二个“MOVE”指令的第二个网格。之后就可以没有错误的编译程序了。 |
创建环境
该 FAQ 中的图片是在 STEP 7 BasicV10.5 SP2 中创建的。
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc332652.html