C#上位机与欧姆龙PLC的通信04---- 欧姆龙plc的存储区

1、存储区概念

欧姆龙PLC将整个数据存储器分为10个区:输入继电器区、输出继电器区、内部辅助继电器区、特殊继电器区、保持继电器区、暂存继电器区、定时/计数器区、数据存储区、辅助存储继电器区、链接继电器区。

输入输出继电器区

CP1E系列PLC输入继电器区有16个通道,通道号为000~099,每个通道有16个输入继电器,位号为00~15。继电器号=通道号+位号

输出继电器区有16个通道,通道号为100~199,每个通道有16个输出继电器,位号为00~15。继电器号=通道号+位号(例如10003)

内部辅助继电器区W

通道号为W0~W99,位号为00~15

定时/计数器区TC

定时器和计数器分别可用256个,定时器号0~255,计数器号0~255一个编号只能分配一次(例TIM000)

数据存储区D

E型数据存储区通道号为D0~D2047

N型数据存储区通道号为D0~D8191

保持继电器区H

通道号为H0~H49

主要特性:可通过专用软件CX-Programmer for CP1E进行编程监控。

2、分区介绍

AR:特殊辅助继电器区;
HR:保持继电器区;
IO:CIO区,用作控制I/O点的数据,也可以用作内部处理和存储数据的工作位;
LR:链接继电器区
TR,暂时存储继电器区;
DM:动态数据存储器区;
EM:扩展数据存储区;
CNT:计数器区;
TIM:定时器区;
IR:变址寄存器;
DR:数据寄存器。

欧姆龙采用通道概念存储数据,所存储数据的单元称为通道(CH),也叫字。每个存储单元都有一个地址,就叫做首地址,简称通道号,用3位数字表示。每个通道有16位(bit),分别称为00,01,02,15位。每个位就是一个软继电器,简你继电器。因此一个通道就有16个软继电器。通道也可用来存储十进制数据,由于十进制数可用特定的二进制编码BCD表示,因此,当用通道存储十进制数时,每4位分成1组,存储1个由BCD码表示的十进制数,将每4位称为1个数字位。也就是说,一个通道有4个数字位,可存储4位十进制数。

3、认识内存区

3.1 CIO存储区

 

点击“在线”,选择“监视“

 

这里的CIO区我们选择的数据类型是2进制,即每个位只能是1或0,它可以表示设备状态是停止还是启动,将它修改为以下内容

这里的意思是将CIO存储区的0开始地址的第0,1,3位设置为1,即0.0为1,0.1为1,0.3为1,联合起来的意思就是指CIO0.0为1,CIO0.1为1,CIO0.3为1,其他默认都是0,你可以认为CIO0.0表示电机当前状态为启动, CIO0.1表示水轮正在转动,随便怎么理解都可以,总之1,0是布尔类型,换到JAVA或C#就是布尔类型true,false,CIO0.3中CIO0表示CIO区中的第0个寄存器,3表示寄存器中的第3位,因为我们设置了CIO区为2进制类型,所以只能设置为1,0,如果设置为其他类型,则可以有不同设置。

 

这一段内存地址表示的含义内容

3.2 DM区

 DM区即数据内存区( “DM”是Data Memory的简称),为欧姆龙产PLC的I/O内存的一种,字(16位)单位中能够提供的读写的通用数据区域。PLC的电源在ON/OFF时也可以保持数据。作为“数据”的“内存”,可以保存接点以外的各种设定数据、运行数据。与其它区域不同,DM内的数据作为DM的地址,可以间接指定DM区域。

双击D,设置为10进制,输入数据

这里要注意监视时设置的进制也是10进制  

 注意:这个10进制是没有符号的,在C#是用ushort类型表示,在C#占2个字节,在PLC中占一个寄存器,PLC中寄存器占2个字节,用word表示,简称字,10.0是第1个寄存器,10.9是第10个寄存器,D区中的第10个地址共占10个寄存器。

3.3 W区

PLC中的W区是掉电不保存区,DM区在电池有电的情况下是掉电保存的。W该区可以像DM区那样按字操作,也可以按位操作。

 双击W,设置为浮点类型的,输入有关数据,浮点型其实是包括有符号的10进制和无符号的10进制,以及有无符号的小数,如300,-987,12.43,-9.53,它占2个word,即占4个寄存器,即占8个字节,在C#中用float表示

 

D区的地址是D10,D11,D12这样编号下去的,每个占1个寄存器

W区的地址是W0,W2,W4这样编号下去的,每个地址占2个寄存器

注意它们的区别,这些数字你们可以表示为电机转速,温度,水位高度,什么都可以。

一个浮点数占4个字节,即占32位,必须要占用两个连续的寄存器,1个寄存器占2个字节 

这里注意,并不是说CIO区只能是2进制,D区是10进制,W区是float,每个区都可以设置为2进制或10进制有符号无符号或浮点,这里只是拿最常用的3种类型来说明PLC寄存器的地址表示及数制。

3.4 C#与PLC中的数据类型比较 

知识:

C#中:

float 单精度浮点 32bit,
double 双精度浮点64bit,
decimal是高精度 128bit,浮点型。
float double 是 基本类型(primitive type),decimal不是。
float 有效数字7位,范围 ±1.5 × 10E−45 to ±3.4 × 10E38
double 有效数字15/16 位,范围 ±5.0 × 10 E−324 to ±1.7 × 10E308
decimal 有效数字 28/29 位,范围 ±1.0 × 10E−28 to ±7.9 × 10E28
( E -- 下接几次方)

decimal的有效位数很大,达到了28位,但是表示的数据范围却比float和double类型小。
使用的时候会对计算时的性能有影响。
常数写法:
float f = 12.3F; (带F)
double x=12.3; (不带就是double)
decimal d = 12.30M; (带M)
--------------------------------------------------------------------------------------------------
PLC与C#数据类型对应
Bit      =>     bool
Byte     =>     byte
word     =>     ushort
DWord     =>     uint
Int     =>     short
DInt     =>     int
float=>     float 
String     =>     string 
 --------------------------------------------------------------------------------------------------

一个英文字母,无论大写和小写都是一个字符、一个字节,8位。
一个汉字是一个字符、两个字节,16位

PLC中:

位(bit):是计算机 内部数据 储存的最小单位,11001100是一个八位二进制数。

字节(byte):是计算机中 数据处理 的基本单位,习惯上用大写  B  来表示,1B(byte,字节)= 8bit(位)

字符:是指计算机中使用的字母、数字、字和符号

B是字节(8位),即byte

W是字(16位),即PLC中的word,占一个寄存器,在C#占2个字节,用short或ushort表示,用来表示整数(不用带小数),short分为有符号(如-89)和无符号(如75)两种,ushort只有无符号一种,如79

DW是双字(32位),即PLC中的dword,占两个寄存器,在C#中占4个字节,用float表示,用来表示带有小数的数,分为有符号(如-28.5)和无符号(如29.6)两种

一个浮点数占4个字节,即占32位,必须要占用两个连续的寄存器,1个寄存器占2个字节  

(1)1个字节=8个位,用B(byte)表示

(2)1个字=16个位,用W(word)表示

(3)1个双字=32个位,用D(double word)表示


 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/240985.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

acwing linux 第七讲 环境变量、管道、常用命令、附录

文章目录 管道 概念 要点 举例 环境变量 查看 修改 常用环境变量 常用命令 系统状况 文件权限 文件检索 查看文件内容 用户相关 其他工具 安装软件 附录 Linux权限 本节课讲解的是管道,环境变量,以及常用命令 管道 概念 管道类似文…

Qt/C++视频监控Onvif工具/组播搜索/显示监控画面/图片参数调节/OSD管理/祖传原创

一、前言 能够写出简单易用而又不失功能强大的组件,一直是我的追求,简单主要体现在易用性,不能搞一些繁琐的流程和一些极难使用的API接口,或者一些看不懂的很难以理解的函数名称,一定是要越简单越好。功能强大主要体现…

即将来临的2024年,汽车战场再起波澜?

我们来简要概况一下11月主流车企的销量表现: 根据数据显示,11月吉利集团总销量29.32万辆,同比增长28%。这在当月国内主流车企中综合实力凌厉,可谓表现得体。而与吉利直接竞争的比亚迪,尽管数据未公布,但我们…

【Linux/gcc】C/C++——编译过程

前提:WSL2(Ubuntu)、gcc编译器。gcc安装命令: sudo apt-get install gcc 查看gcc版本: 目录 1、编译过程 1.1、预处理 1.2、编译与汇编 1.3、链接 2、gcc实验 2.1、预处理 2.2、编译 2.3、汇编 2.4、链接 1、…

XSKY星辰天合星海架构荣获 IT168 “2023 年度技术卓越奖”

近日,"2023 年度技术卓越奖"获奖名单公布,XSKY 星辰天合的星海架构(XSEA,极速全共享架构)获得行业 CIO/CTO 大咖、技术专家及 IT 媒体三方认可,成功入选! “技术卓越奖”评选由国内著…

2. 结构型模式 - 桥接模式

亦称: Bridge 意图 桥接模式是一种结构型设计模式, 可将一个大类或一系列紧密相关的类拆分为抽象和实现两个独立的层次结构, 从而能在开发时分别使用 问题 抽象? 实现? 听上去挺吓人? 让我们慢慢来&#x…

uniapp怎么动态渲染导航栏的title?

直接在接口请求里面写入以下: 自己要什么参数就写什么参数 本人仅供参考: this.name res.data.data[i].name; console.log(名字, res.data.data[i].name); uni.setNavigationBarTitle({title: this.name}) 效果:

【Proteus仿真】【Arduino单片机】智能垃圾桶设计

文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用Proteus8仿真Arduino单片机控制器,使用报警模块、LCD1602液晶模块、按键模块、人体红外传感器、HCSR04超声波、有害气体传感器、SG90舵机等。 主要功能: 系统运行后&am…

14、Qt使用Eigen3

一、下载Eigen Eigen 二、创建项目 创建一个"Qt Widget Application"项目,基类选择“QMainWindow“,把Eigen拷贝到项目中 三、更改代码 在.pro中添加 INCLUDEPATH $$PWD\Eigen 在界面上添加一个pushButton,并转到槽&#xff0…

111基于matlab的粒子滤波进行锂离子电池的循环寿命预测

基于matlab的粒子滤波进行锂离子电池的循环寿命预测,输出实验、粒子滤波及自然预测数据结果。程序已调通,可直接运行。 111matlab锂离子电池寿命预测 (xiaohongshu.com)

JavaEE:CAS详解

一.什么是CAS CAS: 全称 Compare and swap ,字面意思 :” 比较并交换 “ ,一个 CAS 涉及到以下操作: 我们假设内存中的原数据V,旧的预期值A,需要修改的新值B。 我们来进行操作: 1. 比较 V 和 A 是否相等。…

蓝桥杯第二场小白入门赛(1~5)(对不起,我线段树太菜了)

1.模拟 2.贪心 3.二分 4.数论 5.数论 6.线段树&#xff08;线段树还是练少了...&#xff09; 1. 蓝桥小课堂-平方和 直接模拟&#xff0c;注意数据范围 #include <bits/stdc.h> using namespace std; #define LL long long #define pb push_back #define x first …

低代码开发:数字化转型的引擎

引言 在当今数字化时代&#xff0c;组织面临着不断变化的市场需求和技术挑战。数字化转型已成为维持竞争力的关键&#xff0c;而低代码开发正在崭露头角&#xff0c;成为加速创新和数字化转型的有力工具。本文将深入探讨低代码开发的核心概念、优势和应用&#xff0c;以揭示它…

亚马逊圣诞关键词怎么选?亚马逊圣诞节促销活动有哪些?——站斧浏览器

亚马逊圣诞关键词怎么选&#xff1f; 以下是在亚马逊圣诞期间利用长尾关键词的一些建议&#xff1a; 圣诞主题关键词&#xff1a;随着节日的临近&#xff0c;与圣诞相关的关键词搜索热度将急剧上升。在产品标题、描述、关键词等位置使用与圣诞节相关的关键词&#xff0c;比如…

【数据结构一】初始Java集合框架(前置知识)

Java中的数据结构 Java语言在设计之初有一个非常重要的理念便是&#xff1a;write once&#xff0c;run anywhere&#xff01;所以Java中的数据结构是已经被设计者封装好的了&#xff0c;我们只需要实例化出想使用的对象&#xff0c;便可以操作相应的数据结构了&#xff0c;本篇…

【CentOS 7.9 分区】挂载硬盘为LVM操作实例

LVM与标准分区有何区别&#xff0c;如何选择 目录 1 小系统使用LVM的益处&#xff1a;2 大系统使用LVM的益处&#xff1a;3 优点&#xff1a;CentOS 7.9 挂载硬盘为LVM操作实例查看硬盘情况格式化硬盘创建PV创建VG创建LV创建文件系统并挂载自动挂载添加&#xff1a;注意用空格间…

pip 常用指令 pip list 命令用法介绍

&#x1f4d1;pip 常用命令归类整理 pip list 是一个用于列出已安装的 Python 包的命令。这个命令会显示出所有已安装的包&#xff0c;以及它们的版本号。 pip list 命令有以下参数 -o, --outdated&#xff1a;列出所有过时的包&#xff0c;即有新版本可用的包。-u, --uptod…

3D 纹理贴图基础知识

在线工具推荐&#xff1a; 3D数字孪生场景编辑器 - GLTF/GLB材质纹理编辑器 - 3D模型在线转换 - Three.js AI自动纹理开发包 - YOLO 虚幻合成数据生成器 - 三维模型预览图生成器 - 3D模型语义搜索引擎 介绍 纹理贴图是创建模型时离不开的最后一块拼图。同样&#xff0c;…

综合评价---DEA数据包络分析

数据包络分析(Data Envelopment Analysis&#xff0c;DEA)&#xff0c;1978年由 Charnes、Cooper和Rhodes创建的一种绩效评价技术(performance technique) 。采用多投入、多产出数据对多个决策单元(Decision Making Unit) 的相对效率进行评价因DEA的诸多优势&#xff0c;被广泛…

【数据结构之顺序表】

数据结构学习笔记---002 数据结构之顺序表1、介绍线性表1.1、什么是线性表? 2、什么是顺序表?2.1、概念及结构2.2、顺序表的分类 3、顺序表接口的实现3.1、顺序表动态存储结构的Seqlist.h3.1.1、定义顺序表的动态存储结构3.1.2、声明顺序表各个接口的函数 3.2、顺序表动态存储…