本帖最后由 Xiaoshaoqian 于 2022-9-23 16:38 编辑
Poke指令是用来将某一个存储区地址的数据写入到另外一个存储区地址的指令。 从指令列表中添加POKE_BLK的初始状态如下: 可以看到,该指令有7个参数,其中: 1、 area src :字节型数据( Byte ),用来指定源数据存储区。其取值包括如下内容:16#81表示输入缓存区(I)、16#82表示输出缓存区( Q )、16#83表示位存储区( M )、16#84表示数据块( DB ); 2、 dbNumber _ src :双整型数据( DINT ),用来指定源数据块的编号,仅在访问数据块时使用,访问其它存储区时设置为0; 3、 byteOffset src :双整型数据( DINT ),用来指定源数据存储区中写入数据的地址偏移量; 4、 area dest :字节型数据( Byte ),用来指定目标数据存储区。具取值包括如下内容:16#81表示输入缓存区(1)、16#82表示输出缓存区( Q )、16#83表示位存储区( M )、16#84表示数据块( DB ); 5、 dbNumber _ dest :双整型数据( DINT ),用来指定目标数据块的编号,仅在访问数据块时使用,访问其它存储区时设置为0; 6、 byteOffset _ dest :双整型数据( DINT ),用来指定目标数据存储区中写入数据的地址偏移量; 7、 count :双整型数据( DINT ),用来指定需要拷贝的字节数; 举个例子: 1.将DB1.DBB0开始的10个字节拷贝到QB0开始的10个字节。 2.将IB100开始的10个字节拷贝到DB2,DBB0开始的10个字节。 实际操作 在实际操作中DB块中没有偏移量导致拷贝不到DB块的数据如下图所示 右击进入DB块的属性界面将优化的块访问取消勾选如下图所示 程序结果显示
|