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数据类型的更多相关文章
- 【OI】C++STL 不定长数组 vector
Vector 本来是向量的意思,只不过在用法上类似于一个不限长度的数组. 定义语法:vector<数据类型> 名称; 一.头文件:<vector> (bits/stdc++请忽 ...
- stl中的map数据类型
1.1 STL map 1.1.1 背景 关联容器使用键(key)来存储访问读取元素,而顺序容器则通过元素在容器中的位置存储和访问元素. 常见的顺序容器有:vector.list.deque.stac ...
- C++学习笔记(六):复杂数据类型(string、容器和STL)
STL 即Standard Template Library(标准模板库),由于C++自带的数据类型过于简单,并不能满足我们的使用需要,而STL作为C++标准的内置库为我们编写好了多种高效的数据结构和 ...
- PLC 数据类型
类型 长度(位) 取值范围 描述 BOOL 1 0/1 布尔型 BYTE 8 0x00~0xFF 十六进制数 WORD 16 0~65535 无符号整数 DWORD 32 0~4294967295 无 ...
- PLC状态机编程-如何在STL中使用状态机
搞PLC编程多年,一直不知道状态机,学习matlab后,发现状态机编程异常方便,过去很多编程时的疑惑豁然开朗起来.今天跟大家分享一下如何在STL中使用状态机. 下面是用状态机描述的控制任务. 这个状态 ...
- 第2章:C++泛型机制的基石:数据类型表——《C++泛型:STL原理和应用》读书笔记整理
第二章:C++泛型机制的基石--数据类型表 2.1 类模板的公有数据类型成员 2.1.1 类的数据类型成员 C++类中不仅可以定义数据成员和函数成员,而且还可以定义数据类型成员.在泛型设计中,类的 ...
- 【C/C++开发】STL内嵌数据类型: value_type
使用stl库的时候一直对value_type这个东西理解的不是很好,可以说就是不理解.今天看了<STL源码剖析>才恍然大悟.这里稍作记录. 每个STL中的类都有value_type这种东西 ...
- STL容器set()--->自定义数据类型
set容器中不能插入重复的元素,需要其插入的元素有比较大小(<).相等(==) 的逻辑判断,这是因为set中的元素是有序排列, 默认从小到大排列 std::set<type,std::le ...
- [PLC]ST语言五:STL/RET/CMP/ZCP
一:STL/RET/CMP/ZCP 说明:简单的顺控指令不做其他说明. 控制要求:无 编程梯形图: 结构化编程ST语言: (*步进指令STL(EN,s);*) SET(M8002,S3); STL(T ...
随机推荐
- es6 let和const
一.let 1.let块作用域 if(true){ var a=1; let b=2; } console.log("a:"+a);//a:1 console.log(" ...
- ES标准
精确来说,ES1 ~ ES5 中的数字是 ECMA-262 标准的版本号(edition). 即:Standard ECMA-262, 1st Edition(其实第一个版本是没有版本号的)Stand ...
- zTree的使用教程
1.首先去官网下载http://www.ztree.me/v3/main.php#_zTreeInfo 2.之后引入: <script src="js/jquery.ztree.all ...
- 请推荐几个asp.net下做网站的好的开源框架
1.We7 CMS We7 CMS是由西部动力开发的一款充分发掘互联网Web2.0(如博客.RSS等)的信息组织优势,将其理念利用到政府企事业网站的构建.组织.管理中的网站建设和管理方面的产品. 系统 ...
- eclipse中设置自动生成的author,date等注释
转自:http://blog.csdn.net/zhouhong1026/article/details/38396311 转自:http://hi.baidu.com/qianjian21/blog ...
- 关于go get安装git golang项目时报错的处理办法
关于go get安装git golang项目时报错的处理办法 使用go get安装github上的项目时一般来说,不可避免会出错.各种错误的处理办法: 必须条件: 1.安装git并配置环境变量.下载地 ...
- mybatis查询语句的背后之封装数据
转载请注明出处... 一.前言 继上一篇mybatis查询语句的背后,这一篇主要围绕着mybatis查询的后期操作,即跟数据库交互的时候.由于本人也是一边学习源码一边记录,内容难免有错误或不足之处,还 ...
- BeagleBone Black 从零到一 (2 MLO、U-Boot) 转
文章原址:jexbat.com/categories/BeagleBone/ 什么是 U-Boot 熟悉嵌入式开发的应该都听过它,U-boot 就是启动系统前的一段引导程序,虽然是引导程序,但是功能非 ...
- java多线程之守护线程(Daemon)
https://blog.csdn.net/u010739551/article/details/51065923/
- .NET SQL优化
1.没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2.I/O吞吐量小,形成了瓶颈效应. 3.没有创建计算列导致查询不优化. 4.内存不足 5.网络速度慢 6.查询出的数据量过大 ...