关于PLC中BCD码的几点说明

合集下载

plc中常用码制

plc中常用码制

plc中常用码制PLC中常用码制PLC是现代工业控制系统中的核心设备之一,其主要功能是对工业生产过程进行自动化控制。

在PLC的工作过程中,码制是一个十分重要的概念。

本文将介绍PLC中常用的码制,以及它们在自动化控制中的应用。

1. 二进制码二进制码是PLC中最基本、最常用的码制之一。

它由0和1两个数字组成,表示开/关状态。

在PLC中,所有输入和输出都是以二进制码形式表示。

例如,当传感器检测到某个工业设备发生故障时,会产生一个二进制码信号,通知PLC执行相应的控制程序。

2. BCD码BCD码是二进制码的一种扩展形式,它将0~9这10个数字分别用4位二进制码表示。

BCD码在数字控制领域应用广泛,例如在工业自动化控制中,PLC可通过BCD码来控制数字显示屏的输出。

3. 格雷码格雷码是一种二进制码,它的最大特点是相邻两个码之间只有一位二进制数不同。

在PLC中,格雷码可用于减少数字转换时的误差,提高数字控制的精度。

4. ASCII码ASCII码是一种基于拉丁字母的字符编码标准。

在PLC中,ASCII 码可用于控制文本输出。

例如,在工业自动化控制中,PLC可通过ASCII码来控制LED屏幕显示文字信息。

5. Modbus协议Modbus协议是一种基于二进制码的通讯协议,主要用于工业自动化设备之间的数据通讯。

在PLC中,Modbus协议可用于实现PLC 与其他工业设备之间的数据传输,实现设备之间的联动控制。

6. CAN总线CAN总线是一种基于二进制码的实时通讯协议,主要用于汽车、机车等移动设备的控制系统中。

在PLC中,CAN总线可用于实现PLC与车辆控制器之间的数据传输,实现车辆控制系统的自动化控制。

7. 485总线485总线是一种基于二进制码的串行通讯协议,主要用于工业自动化设备之间的数据传输。

在PLC中,485总线可用于实现PLC与其他工业设备之间的数据传输,实现设备之间的联动控制。

码制在PLC的自动化控制中起着至关重要的作用。

四位BCD码

四位BCD码

BCD码:摘要:在采用可编程控制技术的电气控制系统中,控制数据可在系统运行时由外部设置、输入,文章从外部数据BCD码拨盘地址分配,到数据处理,输出控制等,以简单实例介绍了程序设计思路、技巧和参考程序。

关键词:可编程序控制器;外部输入;BCD数码;数据处理;实时控制随着工业自动化程度的不断提高,可编程序控制器(PLC)正在走入工矿企业的每一个角落,只要有控制要求的场合,就有PLC的应用。

PLC常被称为全能“工业电脑”,用它可以方便地对工业现场进行实时控制。

在工业电气控制系统中,经常遇到控制常数设定和修改的问题,例如:某加热控制系统加热时间常数的设定和改变问题。

PLC改变控制常数的常用方法有两种,其一,通过上位计算机对原程序中控制数据进行修改;其二,利用外部装置输入数据,控制系统运行。

即由外设将数据送入PLC,进行数据处理,然后对PLC内部参数进行修改,实现对工业设备的实时控制。

第二钟数据输入方法,具有不修改原程序,数据输入方法简单、操作方便,能实现实时控制等优点,不仅适用于计算机设计人员使用,而且还适用于普通操作人员。

在电气控制设备上,有着非常广泛的应用,并且许多厂家PLC产品都具有外部数据输入功能。

所以,利用PLC控制技术对外部BCD码数据进行输入,充分发挥工业控制计算机—PLC数值计算和处理能力的编程、控制方法,具有实际应用的推广意义。

这里,以SIEMENS公司PLC构成的某加热系统为例,详细、具体地对加热时间常数外部数据输入方法及用户处理程序作以介绍。

1 BCD码数据外部输入应用设计举例1.1 设计思路首先介绍SIEMENS(西门子)公司PLC S7—200的物理存储区结构,一般情况下,物理存储区是以字节为单位的,所以存储单元为字节单元,操作数长度是字或双字时,标识符后给出的存储单元参数是字或双字内的最低字节单元号。

图1(a)给出了字节、字、双字的相互关系及表示方法。

当使用数据宽度为字或双字时,应保证没有生成任何重叠的存储器字节分配,例如,字地址编码应采用MW10、MW12、MW14······等偶数字地址或MW11、MW13、MW15·······等奇数字地址,由于存储器字MW10占用MB10、MB11两个字节,而MW11则要占用MB11、MB12两字节,存在字节地址重叠单元MB11,所以字地址编码时奇偶不能兼用,以免造成数据读写错误。

PLC数据类型

PLC数据类型

PLC数据类型1、数据格式及要求①数据格式:及指数据的长度和表示方式②要求S7-200对数据的格式有一定的要求,指令与数据格式一致才能正常工作。

2、用一位二进制数表示开关量①一位二进制数:一位二进制数有0(OFF)和1(ON)两种不同的取值,分别对应开关量(或数字量)的两种不同状态。

②位数据的数据类型:布尔(BOOL)型。

③位地址:由存储器标识符、字节地址和位号组成,如等。

④其他存储区的地址格式:由存储器标识符和起始字节号(一般取偶字节)组成,如VB100、VW100、VD100等。

3、多位二进制数(8421码)①数及数制:数用于表示一个量具体大小。

根据计数方式的不同,有十进制(D)、二进制(B)十六进制(H)和八进制等不同的计数方式②二进制表示:在S7-200中用2#来表示二进制常数,例如“2#”。

③二进制大小:将二进制的各位(从右往左第n位)乘以对应的位权(×2n-1),并将结果累加求和可得其大小。

例如:2#=1×27+0×26+1×25+1×24+1×23+0×22+1×21+0×20=1864、十六进制数①十六进制数的引入:将二进制数从右往左每4位用一个十六进制数表示,可以实现对多位二进制数的准确读写。

②不同进制的表示方法;③十六进制数的表示方法:在S7-200中用16#表示十六进制常数,例如“2#1010 1110 0111 0101”可转换为“16#AEF7”。

④十六进制大小:将十六进制数的各位(从右往左第n位)乘以对应的位权(×16n-1),并将结果累加求和可得其大小。

例如:16#2F=2×161+15×160=475、数据长度:字节(Byte)、字(Word)、双字(DoubleWord)①字节(B):从0号位开始的连续8位二进制数称为一个字节②字(W):相邻两个字节组成一个字的长度③双字(DW):相邻4个字节组成一个双字长度④字双字长数据的存储特点:高位存低字节、低位存高字节。

BCD码

BCD码

BCD码用于PLC的输入、输出,例如数码管显示,拨码开关输入,日期、时间的输入、输出。

应该是当时的临时解决方案,现在的应用越来越少了,未来估计会更少。

答:拨码开关用得越来越少了,电梯的数码管显示还是需要BCD码的,时间日期的显示、输入要要用BCD码,BCD码是二进制编码的十进制数,PLC用十进制数和用户交流就需要BCD码。

BCD码不会消亡。

8段码数字显示管都是用BCD码显示的。

PLC中有相应的转换程序,非常方便。

现在用屏非常多,一般不用数码显示管了。

需要占PLC 4个输出点。

电梯的楼层就是用数码管显示的,谁见过用屏显示楼层的吗?所以还是有不一般的情况。

以电梯的楼层显示为例,需要用指令将PLC内部的二进制整数转换为两位BCD码(一个字节),然后将这两位BCD码(每一位用4位二进制数表示)分别送给两个数码管的译码驱动芯片。

没BCD码就干不了这件事。

lsy9202:BCD码用于操作硬件,而硬件就是电路,电路是只能识别0和1的二进制数的,所以整数123想让电路认识就要转换为BCD码W#16#123=2#0000_0001_0010_0011答:BCD码用于操作硬件这个说法不准确,准确一点说,BCD码用于输入(例如拨码开关)、输出设备(例如数码管),它们是和人打交道的,输入的和显示的都是十进制数。

但是通过这些设备不能直接输入和显示十进制数,所以要用BCD码。

BCD码就是每一位用4位二进制数表示的十进制数,例如要输入十进制数123,拨码开关提供给PLC的BCD码为W#16#123=2#0001_0010_0011,PLC就可以用12个数字量输入点来接收了。

可以用指令将BCD码转换为整数。

即BCD代码。

Binary-Coded Decimal??,简称BCD,称BCD码或二-十进制代码,亦称二进码十进数。

是一种二进制的数字编码形式,用二进制编码的十进制代码。

这种编码形式利用了四个位元来储存一个十进制的数码,使二进制和十进制之间的转换得以快捷的进行。

(完整版)学西门子PLC时,BCD码和十六进制要分清,附寻址介绍表

(完整版)学西门子PLC时,BCD码和十六进制要分清,附寻址介绍表

容易让人糊涂的BCD码和十六进制BCD码(Binary-Coded Decimal)是二进制编码的十进制数的缩写,BCD码用4位二进制数表示一位十进制数。

BCD码各位的数值范围为2#0000~2#1001,对应于十进制数0~9。

BCD码不能使用十六进制的A~F(2#1010~2#1111)这6个数字。

BCD码本质上是十进制数,因此相邻两位逢十进一。

BCD码的最高位二进制数是符号位,负数的符号位为1,正数为0。

16位BCD码的范围为–999~+999。

下图的拨码开关将显示的数字转换为4位二进制数。

PLC用12个数字量输入点读取的是3位BCD码,它的值为2#1000 0010 1001,即十六进制数16#829。

BCD码没有单独的表示方法,而是借用了十六进制的表示方法,因此二者很容易混淆。

下图是S7-300/400的BCD码和整数的相互转换指令,可以看到在指令中BCD码均用十六进制的形式表示。

在程序中,怎么知道一个数字是BCD码还是十六进制数呢?1)、看数据的来源和用途BCD码一般用于输入和输出,例如来自拨码开关的数据是BCD码,送给显示电梯楼层的译码器芯片的是BCD码。

2)、看手册规定例如数据类型DATE_AND_TIME中的日期和时间值是BCD码,计数器的预设值PV 和当前计数值CV_BCD为BCD码。

怎样监视BCD码?在变量表和程序状态监控中,用十六进制格式监视BCD码,怎样输入BCD码?从上图可以看出,BCD码用十六进制格式输入,其最高位(符号位)为16#F(2#1111)。

BCD码的低3位各位只能是0~9,如果是16#A~16#F则会出错。

计数器的预设值PV是0~999的BCD码,可以用格式为C#的常数(C#1~C#999)作为计数器的预设值。

下图用MW42提供计数器的预设值PV,如果用MOVE指令将十进制数348(对应的十六进制数为16#15C)传送给MW42,进入RUN模式时,操作系统将它转换为BCD码时出错(16#15C不是BCD码),不能切换到RUN模式。

bcd码的作用及其编码方法

bcd码的作用及其编码方法

bcd码的作用及其编码方法嘿,你知道吗?BCD 码可是个很有意思的东西呢!它就像是数字世界里的一把神奇钥匙,有着特别重要的作用。

咱先说说它的作用哈。

你想啊,在很多实际应用中,我们经常要和数字打交道,但有时候普通的二进制表示法可能不太方便。

这时候BCD 码就派上用场啦!它可以让数字的表示和处理变得更加直观和容易理解。

就好比你有一堆乱七八糟的东西,BCD 码能帮你把它们整理得井井有条,让你一眼就能看明白。

比如说在一些需要显示数字的设备上,BCD 码就能让数字显示得更清晰明了。

不然你想想,如果没有 BCD 码,那些数字可能会变得乱糟糟的,让你看得一头雾水。

那 BCD 码的编码方法又是啥呢?其实也不难理解啦。

简单来说,就是把每一位十进制数字用四位二进制数来表示。

这就好像是给每个数字都穿上了一件特定的“二进制衣服”。

举个例子吧,十进制的 5 用 BCD 码表示就是 0101。

是不是挺有意思的?这样一来,我们就能很方便地对数字进行处理和传输啦。

而且哦,BCD 码的编码方法还有好几种呢!有 8421 BCD 码、2421 BCD 码等等。

每种编码方法都有它自己的特点和适用场景。

就好像不同的工具,各有各的用处。

8421 BCD 码是最常用的一种,就像我们日常生活中的常用工具一样,用起来顺手得很。

2421 BCD 码呢,则可能在一些特定的场合发挥它的独特作用。

你说这 BCD 码神奇不神奇?它就像是数字世界里的一个小秘密,等着我们去发现和利用。

学会了它,我们就能在数字的海洋里畅游得更自在啦!想象一下,如果没有BCD 码,那我们处理数字的时候得多麻烦呀!它真的是给我们带来了很多便利呢。

所以啊,可别小看了这小小的 BCD 码,它的作用和编码方法都值得我们好好去研究和掌握呢!你还在等什么呢?赶紧去深入了解一下吧!。

DDM4A4位BCD码串行数码显示表应用说明

DDM4A 4位BCD码串行数码显示表应用说明主要参数尺寸:96×48×112mm重量:0.12Kg工作电源DC4.8V~5.2V;功率消耗I型表……550mW;II型表……220mW;显示规格字高0.8”×4;适用PLC所有PLC;传送距离<30M;接口信号源、漏型晶体管;小数点显示方式可编程浮点显示;PLC驱动模式4位数码显示,4个I/O口,14个脉冲周期刷新;脉冲宽度>2ms;刷新时间>14×2ms;BCD控制驱动电流>5mA;工作温度范围-20℃-+40℃;工作湿度范围10~90%相对湿度;外形尺寸96×48×112mm重量0.12Kg产品描述:采用并行传输BCD码、串行控制方式,不但具有串行传输技术的先进性和低价格的特点,同时以其快速的显示刷新方式、简洁的编程方便用户使用。

DDM4A主要特点:每一块DDMA数码显示表可显示4位数据,显示范围在0000~9999及扩展5个特殊符号:“-”、“P”、“L”、“H”、“E”。

它们分别可用于表示“±”、“压力”、“低”、“高”、“错误”等其他符号。

每位数码管的小数点均可以通过PLC程序控制点亮或熄灭,显示精确,无误差、无零漂、无需计量。

可以显示PLC内部数据寄存器中任意的数字。

无需将工程量再进行转换,可以在DDM4A表上直接显示工程数据。

例如:采集温度信号为503.3℃,寄存器D100中存放温度采集值为5033的温度数据,D101中存放对应温度的小数点位置数据0002。

运行显示子程序后,对应的DDM4A表上即显示503.3。

采用PLC晶体管开关量输出点驱动DDM4A,一块表仅需要4个开关量输出点,以后每增加一块仪表,只需要增加仪表选通PLC开关量输出点即可。

因此在多表连接方式下,该种仪表将显示其优越的特性。

一般PLC均具备BCD码指令或二进制运算指令,所附加的显示子程序简单,运行速度较快。

BCD 码转换指令IBCD_电气控制与PLC综合应用技术(第2版)_[共2页]

5.11 多位数码显示及应用
139
图5-41 5人智力竞赛抢答器主程序
5.11
多位数码显示及应用 5.11.1 BCD 码转换指令IBCD
1.8421BCD 编码 当显示的数码不止1位时,就要并列使用多个数码管。

以2位数码显示为例,可以显示的十进制数范围是0~99。

在PLC 中,数据都是以二进制格式存储,如果直接使用SEG 指令对数据进行十进制编码,则会出现差错。

例如,十进制数21的二进制存储格式是0001 0101,对高4位使用SEG 指令编码,则得到“1”的七段显示码;对低4位使用SEG 指令编码,则得到“5”的七段显示码,显示的是十六进制数码“15”,而不是十进制数码“21”。

显然,要想显示“21”,就要先将二进制数0001 0101转换成反映十进制进位关系(即逢十进一)的代码0010 0001,然后对高4位“2”和低4位“1”分别用SEG 指令编出七段显示码。

这种用二进制形式反映十进制数码的代码称为BCD 码,其中最常用的是8421BCD 码,它是用4位二进制数来表示1位十进制数码,该代码从高位至低位的权分别是8、4、2、1,故称为8421BCD 码。

十进制数、十六进制数、二进制数与8421BCD 码的转换关系见表5-28。

BCD编码

BCD编码BCD码简介什么是BCD码?在PLC数据转换中经常接触到BCD码,那么什么是BCD码,什么是压缩的BCD 码?二者又有什么区别呢?在数字系统中,各种数据要转换为二进制代码才能进行处理,而人们习惯于使用十进制数,所以在数字系统的输入输出中仍采用十进制数,这样就产生了用四位二进制数表示一位十进制数的方法,这种用于表示十进制数的二进制代码称为二-十进制代码(Binary Coded Decimal),简称为BCD码。

它具有二进制数的形式以满足数字系统的要求,又具有十进制的特点(只有十种有效状态)。

在某些情况下,计算机也可以对这种形式的数直接进行运算。

常见的BCD码表示有以下几种。

8421BCD编码这是一种使用最广的BCD码,是一种有权码,其各位的权分别是(从最有效高位开始到最低有效位)8,4,2,1。

例写出十进数563.97D对应的8421BCD码。

563.97D=0101 0110 0011 . 1001 01118421BCD例写出8421BCD码1101001.010118421BCD对应的十进制数。

1101001.010118421BCD=0110 1001 . 0101 10008421BCD=69.58D在使用8421BCD码时一定要注意其有效的编码仅十个,即:0000~1001。

四位二进制数的其余六个编码1010,1011,1100,1101,1110,1111不是有效编码。

2421BCD编码2421BCD码也是一种有权码,其从高位到低位的权分别为2,4,2,1,其也可以用四位二进制数来表示一位十进制数。

其编码规则如下表。

余3码余3码也是一种BCD码,但它是无权码,但由于每一个码对应的8421BCD码之间相差3,故称为余3码,其一般使用较少,故正须作一般性了解,具体的编码如下表。

常见BCD编码表十进制数 8421BCD码 2421BCD码余3码0 0000 0000 00111 0001 0001 01002 0010 0010 01013 0011 0011 01104 0100 0100 01115 0101 1011 10006 0110 1100 10017 0111 1101 10108 1000 1110 10119 1001 1111 110010 0001,0000 0001,0000 0100,0011非压缩式和压缩式:BCD又分为两种,非压缩式和压缩式两种。

西门子S7-200中BCD_I指令的使用方法

知识结构西门子S7-200中BCD_I指令的使用方法一、BCD码的定义二、拨码开关三、例1、例2、例3、例4一、BCD码的定义BCD码(Binary Coded Decimal)BCD码是各位按二进制编码的十进制数。

每位十进制数用 4位二进制数来表示,0~9对应的二进制数为0000~1001,各位 BCD 码之间的运算规则为逢10进1。

以BCD码1001 0110 0111 0101 为例,对应的十进制数为9675,最高的4位二进制数1001 表示 9000。

16 位 BCD 码对应于4 位十进制数,允许的最大数字为 9999,最小的数字为 0000。

拨码开关(如图所示)的圆盘圆周面上有 0~9这 10个数字,用它面板上的按来增减各位要输入的数字。

它用内部的硬件将一位十进制数转换为4 位二进制数。

PLC 用输入点读取的多位拨码开关的输出值就是BCD 码,需要用数据转换指令 BCDI将它转换为 16位或32位整数。

STEP 7-Micro/WIN 用十六进制格式(16#) 表示BCD 码,例如从如图所示的拨码开关读取的BCD 码用16#829来表示。

二、拨码开关如图1,右键单击VW0,选择“写入”,如图2,在弹出的对话框中输入600如图3,该程序中BCD_I指令将BCD码16#258(600)转换为整数258。

如图1,右键单击VW0,选择“写入”,如图2,在弹出的对话框中输入16#6538如图3,该程序中BCD_I指令将BCD码16#6538(25912)转换为整数6538。

该例中意图将590输入到VW0,但是该指令却无法执行。

原因是理论上由于硬件输入的原因,PLC的输入端得到的BCD码是用十六进制格式(16#)表示的,这就意味着这个十六进制(16#)数的各个位上的数不能为A、B、C、D、E、F中的任意一个。

所以说590(16#24E),这个数据对于这条指令是非法的,所以执行结果也是错误的。

当然对于一个用BCD码表示的数,也不可能为16#24E。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

关于PLC中BCD码的几点说明
(2014年12月8日总结)
1、如下图所示,程序运行正常,转换结果显示也正确。

请问有什么问题吗?
2、MW113对应在触摸屏显示如下(当前是12月,抓住旧年的尾巴好好规划新年吧):此时也能正常显示。

3、程序里面没有发现错误,但是PLC上的SF灯却被点红亮了,而且在STEP7 PLC诊断里面会发现如下问题:
(1)状态错误(General下拉表里面可以看见下图)
(2)在诊断缓存器(Diagnostic Buffer)里面可以看到故障信息如
下:
具体故障信息为:BCD 转换错误(BCD conversion error).
4、为什么会产生“BCD 转换错误”呢?
首先我们来看BCD转换的条件:
(1)BCD_I (BCD码转换为整型)将参数IN的内容以三位BCD码数字(+/- 999)读取,并将其转换为整型值(16位)。

整型值的结果通过参数OUT输出。

ENO始终与EN的信号状态相同。

如下图所示:
(2)I_BCD (整型转换为BCD码)将参数IN的内容以整型值(16位)读取,并将其转换为三位BCD码数字(+/- 999)。

结果由参数OUT输出。

如果产生溢出,ENO的状态为"0"。

如下图所示:
由以上两个转换方式可知,BCD码可以表示的范围只有-999~999。

如果超出这个范围将会产生错误。

但是本例中的数只有12,不会超出范围。

即使将12换成1~9也同样会产生这样的错误。

所以此处报出的“BCD 转换错误”并不是超出了BCD码可用的转换范围,而是有其他错误。

(3)我们分析上述出问题的程序时发现,原来输入的值MW111中存放的是按二进制方式存放的12,而不是按BCD码方式存放的12.所以此时调用“BCD_I”这个指令时,其输入端并不是BCD格式的数,所才产生了错误。

5、为什么说BCD码只能表示-999~999呢?
由于“BCD_I”这个指令要求可转换的BCD码范围为三位BCD码,那此时就如下:“-1111 1111 1111”~ “+1111 1111 1111”。

相关文档
最新文档