共有データブロックDB1部材は、部材の一方、又はアドレスDB1内部アクセスデータにアプリケーションの継続的な配列を定義定義

概要:共有データブロックDB1を定義する、アレイに定義されたDB1

SFC21と同じ割り当ては、配列の要素の完全な実現を達成します

配列割り当てにおける一定の要素を達成するために

アレイの割り当てのすべての要素の実現

特定の要素または連続アレイ内のプログラム内の特定の変数に、読み出し配列または要素のストリングを達成

 

 

 

トレーニングの前に知識のポイントを習得する必要があります

16トレーニングブック72で

LP#10.0 //示すアキュムレータに32ビットの内部ポインタ値を再現しました。

 

P#10.0 10.0一定であるポインタを表します。

直ちにポインタ変数番号値内部は、P#「#」で以下。

#DB1.DB P X 0.0 INT 1 INTを表し、Xはワードワード(ワード)であります

 

例えば、データブロック内に定義された配列変数DB1

P#DB1.DBX0.0 INT 1

DB1.DBX0.0 INT 1は、 実際に押しDB1が内部に定義されたデータ・ブロックのアレイである[1]

 

図1は、P#DB1.DBX0.0 INT 1となる図を入力した後。

 

 

 

知識ポイント2

P#DB1.DBX0.0 INT 4

これは、DBW0〜DBW6を表し

実際にDBW0 DBW2 DBW4 DBW 6

 

知識ポイント3

 

SRCBLK入力パラメータとBLKMOV DSTBLKデータタイプの出力パラメータが同じでなければなりません。

Byte型の入力、出力がバイト型である必要があります

入力は単語の種類であるワードタイプの出力もなければなりません

 

 

演習1

値はMW2内部DB1.Press内部アレイの全ての配列要素に書き込まれます

MW2はDB1.Press [1] = 1の後に、例えば、行われます

DB1.Press [2] = 1

DB1.Press [3] = 1

......

DB1.Press [100] = 1

 

 

练习 2 写入数组中的某一个元素 (重要)

写入第1个元素

注意:此时的 P#DB1.DBX7.0 INT 1

表示的是 DB1.DBW7 INT 表示寻址的是字 WORD 1 表示 只寻址一个字

 

DBW7=DB1.Byte[7]+DB1.Byte[8]

假设我把 MW2设为30 对应于十六进制的0X001E

也就是说 byte[7]是 0X00 BYTE[8]对应的是0X1E

 

仿真

可以知道 地址为8.0 的高字节 写入的是0X1E 所以Press[5]是0X1E00=十进制7680

地址为6.0的低字节 写入的是0X00

 

假设MW2写入十进制 对应16进制012C

则Prress [4] 为 0X0001 对应十进制 1

Press[5]对应OX2C00 对应十进制 11264

 

如果刚好P#DB1.DBX4.0 int 1

DBW4=BYTE4 +BYTE 5 与 DB1.DBW4 重合 等于 Press[3 ]

仿真 MW2 写入520

 

注意:程序在修好了以后 必须先保存 再下载 才生效。

 

练习3

写入数组中的某几个连续的元素

例如 连续写进press[6 press[7 press[8 press[9 ess[10

5个整形

 

执行完以后 只有preSS [6] 被成功赋值。

 

如果需要赋予 5个值日 。 则输入必须是统一类型的5个数据 改正程序为

输入的参数 改正为 P#2.0 INT 4 表示的是 MW2 MW4 MW6 MW 8

 

执行结果

 

在共享数据块DB1 查询值的变化

 

 

 

 

 

 

 

 

练习 4 将DB1数据块中的DBW4 DB1.DBW4 复制到MW10 中去

 

百度网盘 

おすすめ

転載: www.cnblogs.com/bailongwei654321/p/12288067.html