PLC STL any数据类型
Posted 菜鸟员
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PLC STL any数据类型相关的知识,希望对你有一定的参考价值。
1.any数据类型共10个字节,数据格式如下
2.Byte 0: 固定10h 表示S7
Byte 1:表示数据类型
|
Coding of the Data Types |
|
Hexadecimal Code |
Data Type |
Description |
b#16#00 |
NIL |
Null pointer |
b#16#01 |
BOOL |
Bits |
b#16#02 |
BYTE |
Bytes (8 bits) |
b#16#03 |
CHAR |
Characters (8 bits) |
b#16#04 |
WORD |
Words (16 bits) |
b#16#05 |
INT |
Integers (16 bits) |
B#16#06 |
DWORD |
Words (32 bits) |
b#16#07 |
DINT |
Double integers (32 bits) |
b#16#08 |
REAL |
Floating-point numbers (32 bits) |
b#16#09 |
DATE |
Date |
b#16#0A |
TIME_OF_DAY (TOD) |
Time of day |
b#16#0B |
TIME |
Time |
b#16#0C |
S5TIME |
Data type S5TIME |
b#16#0E |
DATE_AND_TIME (DT) |
Date and time (64 bits) |
b#16#13 |
STRING |
String |
Byte 2,3 /Word2:表示传送的数据长度,重复因子
Byte 4,5/Word3:表示DB块号或者为0
Byte 6:表示存储区域
Hexadecimal Code |
Area |
Description |
b#16#80 |
P |
I/O area |
b#16#81 |
I |
Input area |
b#16#82 |
Q |
Output area |
b#16#83 |
M |
Bit memory area |
b#16#84 |
DB |
Data block |
b#16#85 |
DI |
Instance data block |
b#16#86 |
L |
Local data (L stack) |
b#16#87 |
V |
Previous local data |
DW6:存放偏移的起始地址
3.举例,从DB2002 拷贝 50字节长度的数据,共20组,到DB2003 对应的结构中
A M 2001.0
JCN nop
L P#DBX 0.0 //传送起始地址
AD DW#16#FFFFFF
T #TEMPDW //这一步转成32位地址格式?
L 0
T MW 2002
L 20 //循环复制的次数
L -1
+I
lop: T #loopcnt
LAR1 P##SRC
L W#16#1002 //16#10 代表S7 16#02表示数据类型是 byte
T LW [AR1,P#0.0] //将W#16#1002传给 any 的第一个字
L 50 //每次拷贝的 数据长度
T LW [AR1,P#2.0] //传给 any 的第二个字
L 2002 // DB 块号,传给 any 的第三个字
T LW [AR1,P#4.0]
L #loopcnt
// L -1
// +I
L 50
*I
SLD 3
L #TEMPDW
+D
T LD [AR1,P#6.0] //带拷贝的数据存储的起始地址
L B#16#84
T LB [AR1,P#6.0] //存储区是DB 块
LAR1 P##DEST
L W#16#1002
T LW [AR1,P#0.0] // any 第一个字
L 50 //any 接收的数据长度
T LW [AR1,P#2.0]
L 2003 // any 接收的 DB块
T LW [AR1,P#4.0]
L #loopcnt
L 50
*I
SLD 3 //偏移量
L #TEMPDW
+D
T LD [AR1,P#6.0] //any 接收的数据存储起始地址
L B#16#84
T LB [AR1,P#6.0] //存储区域是DB块
CALL "BLKMOV"
SRCBLK :=#SRC
RET_VAL:=#RetVal
DSTBLK :=#DEST
L #RetVal
L 1
L MW 2002
+I
T MW 2002
L #loopcnt //开始下一次循环
LOOP lop
nop: NOP 0
以上是关于PLC STL any数据类型的主要内容,如果未能解决你的问题,请参考以下文章
从“数据?”到不相关的类型 '[String : Any]' 总是失败