概要:共有データブロック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 中去