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

news2024/12/26 22:15:22

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.coloradmin.cn/o/1325996.html

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

相关文章

Modbus-ASCII数据帧

Modbus-ASCIl传输模式中,每个字节均以ASCI编码,实际报文中1个字节会以两ASCIl字符发送,因此这种模式比Modbus-RTU模式效率要低。 例如报文数据 x5B "5""B" X35 X42 . 数据帧格式如下: 从ASCI报文帧可以看出&#xff0…

探索 Vue3 (四) keep-alive缓存组件

keep-alive 的作用 官网介绍:KeepAlive | Vue.js keep-alive为抽象组件,主要用于缓存内部组件数据状态。可以将组件缓存起来并在需要时重新使用,而不是每次重新创建。这可以提高应用的性能和用户体验,特别是在需要频繁切换组件时…

java实现回文数算法

判断一个数是否为回文数可以使用以下算法: 将数字转化为字符串;初始化左右两个指针,分别指向字符串的首尾;循环比较左右指针指向的字符,如果相等则继续比较,直到左右指针相遇或者发现不相等的字符为止&…

使用凌鲨辅助学习软件研发

对于新入门的软件研发人员来说,Git和研发环境的搭建确实是一个不小的挑战。Git是一个分布式版本控制系统,用于跟踪代码的更改和协作,而研发环境则是一个专门用于开发和测试应用程序的环境。 在Git方面,新入门的软件研发人员需要了…

升级ChatGPT4的方法

1. 主要流程:先申请一个美区apple id,然后往这个apple id充钱,用这个apple id的钱订阅chatgpt 2. 细节: (1)申请美区apple id: 其实这一步很简单(曾经以为比较复杂)&…

23年12月AI烟火识别系统应用案例-北京梅兰芳故居防火系统

AI烟火识别智能视频分析系统在文化遗产保护领域的应用,尤其是在梅兰芳故居防火系统的部署,是现代科技与传统文化保护结合的典范。这篇文章将详细介绍富维烟火识别系统的设计、实施及其在23年12月在北京梅兰芳故居中的应用。 背景介绍 ● 梅兰芳故居的重要…

php-使用wangeditor实现富文本(完成图片上传)-npm

官网参考连接:快速开始 | wangEditor 样式: 一、新建一个临时文件夹test1和一个文件夹wangeditor 临时文件夹test1:临时存放通过npm下载的文件文件夹wangeditor:用于存放在临时文件夹test1拷贝的css和js 二、安装 editor 在确保有…

mac电池最大充电限制 AlDente Pro中文 for Mac

热保护:在电池温度较高时为电池充电会导致电池老化更快。启用热保护后,当电池温度过高时,充电将自动停止。 航行模式:通常情况下,即使激活了最大电池充电,您的 MacBooks 电池也会始终稍微充电和放电以保持所…

【yolov8系列】 yolov8 目标检测的模型剪枝

前言 最近在实现yolov8的剪枝,所以有找相关的工作作为参考,用以完成该项工作。 先细读了 Torch-Pruning,个人简单记录了下 【剪枝】torch-pruning的基本使用,有框架完成的对网络所有结构都自适应剪枝是最佳的,但这里没…

快速从图中提取曲线坐标数据的在线工具WebPlotDigitizer

快速从图中提取曲线坐标数据的在线工具WebPlotDigitizer 1 介绍2 WebPlotDigitizer在线版的使用2.1 上传图像2.2 点击横纵坐标点:2.3 选择曲线 3 查看数据参考 1 介绍 写论文时要对比别人曲线图、点图、柱形图的数据,但是只有图没有原始数据怎么办&…

JVM调优小结

JVM常见工具介绍 jinfo(查看配置信息) 查看Java应用程序配置参数或者JVM系统属性&#xff0c;相关命令详情我们可以使用-help或者man命令查看&#xff0c;如下所示: [rootxxxxxtmp]# jinfo -help Usage:jinfo [option] <pid>(to connect to running process)jinfo [op…

《信息安全工程师教材》-蒋建春、信息安全完全参考手册-Mark Rhodes Ousley、CISSP官方学习指南第九版、ISO27002学习

文章目录 介绍关系学习顺序重复内容学习方法建议学习时间可能重合的部分更详细的学习计划 介绍 《信息安全工程师教材》- 蒋建春&#xff1a;这本教材可能是针对中国地区信息安全工程师的认证考试而编写的&#xff0c;它可能会涵盖信息安全的基本概念、技术和政策&#xff0c;特…

Ubuntu 常用命令之 gzip 命令用法介绍

&#x1f4d1;Linux/Ubuntu 常用命令归类整理 gzip 是一个在 Linux 和 Unix 系统中常用的文件压缩工具。它的名字来源于 GNU zip&#xff0c;作为一个自由软件&#xff0c;它是 GNU 项目的一部分。gzip 命令通常用于压缩文件&#xff0c;以节省磁盘空间&#xff0c;或者减小文…

Python教程:对于初学者,几个易懂的装饰器示例用法

装饰器是Python中的一个高级功能&#xff0c;它可以用来扩展或修改一个函数或方法的功能&#xff0c;而不需要修改其原始代码。装饰器本质上是一个函数&#xff0c;它接受一个函数作为参数&#xff0c;并返回一个新的函数对象。 装饰器通常用于添加与函数功能无关的额外功能&a…

泛微OA C# 调用 WebAPI功能实现

泛微OA C# 调用 WebAPI功能实现 OA 在线文档地址1. 创建流程字段参数 mainData 简单说明字段表明细表2. 接口封装2.1 接口初始化2.2 接口注册2.3 获取Token2.4 拼装 Headers2.5 常用工作流方法2.5.1 创建2.5.2 删除2.5.3 撤回2.5.4 退回3. 接口调用OA 在线文档地址 Token认证 …

【C#】.net core 6.0 通过依赖注入注册和使用上下文服务

给自己一个目标&#xff0c;然后坚持一段时间&#xff0c;总会有收获和感悟&#xff01; 请求上下文是指在 Web 应用程序中处理请求时&#xff0c;包含有关当前请求的各种信息的对象。这些信息包括请求的头部、身体、查询字符串、路由数据、用户身份验证信息以及其他与请求相关…

Windows如何安装使用TortoiseSVN客户端并实现公网访问本地SVN Server

文章目录 前言1. TortoiseSVN 客户端下载安装2. 创建检出文件夹3. 创建与提交文件4. 公网访问测试 前言 TortoiseSVN是一个开源的版本控制系统&#xff0c;它与Apache Subversion&#xff08;SVN&#xff09;集成在一起&#xff0c;提供了一个用户友好的界面&#xff0c;方便用…

一文吃透String

1.概览 String 被声明为 final&#xff0c;因此它不可被继承。 内部使用 char 数组存储数据&#xff0c;该数组被声明为 final&#xff0c;这意味着 value 数组初始化之后就不能再引用其它数组。并且 String 内部没有改变 value 数组的方法&#xff0c;因此可以保证 String 不…

苏宁易购商品详情API:电商实时数据

一、引言 在当前的电商行业中&#xff0c;数据是最为宝贵的资源之一。如何获取实时、准确的数据&#xff0c;对于电商业务的运营和优化至关重要。作为中国领先的电商平台之一&#xff0c;苏宁易购提供了丰富的API接口&#xff0c;其中包括商品详情API&#xff0c;以便第三方开…

AI文生图功能试用

使用边界AICHAT中的文生图功能&#xff0c;使用下面的文本描述&#xff1a; 春天&#xff0c;在大明湖畔&#xff0c;一个中国南方的&#xff0c;女人&#xff0c;皮肤白皙&#xff0c;长发飘逸&#xff0c;明亮眼睛&#xff0c;五官俊俏&#xff0c;在静静的临摹&#xff0c;…