格雷码转换PLC实例

合集下载

格雷码数据转换方法

格雷码数据转换方法

格雷码的广泛用途就不多说了,总之优点多多,在PLC 工控中经常用到绝对编码器,所以今天就格雷码与常用进制间的互换做几个例子,方便理解。

1、格雷码与BIN的算法:假如格雷码为:110011,那么,转换为二进制码则为:100010具体的转换过程为:用格雷码的最左位即(高位)与“0”异或取得一个值,用最高位取得的异或值结果与格雷码的次位(即:左二位)再次计算异或值,其结果依次与下一位格雷码异或计算,所取得的与原格雷码位数相同的一个数据即是转换所得二进制;2、二进制数转换为格雷码则如下:假如一个二进制数为:11100011,那么其转换为格雷码即为:10010010;其算法由二进制数据的右端(即低位)算起,用该二进制数的最低位,在PLC中称为“0”位,与“1”位进行异或所得值即为格雷码的最低位,再用二进制的“1”位和“2”位异或取得值为格雷码的低二位,依次类推,二进制的最高位,直接不变放到格雷码的最高位,至此,就获得一组与二进制位数相等的格雷码数据。

至于格雷码转换BCD数据,相信能转换为二进制,这个就不难搞定了。

最绕弯的,个人感觉是格雷码转换成角度值。

下面我详细唠叨一番:3、格雷码转换角度值假如10位分辨率格雷码,要转换成角度值,(一般角度值精确到小数点后一位,如“37.6”,在PLC数值运算中常放大10倍来使用,即“376”显示。

)举一例子:格雷码:1110010100,转换角度值为:2613具体转换过程是:先将格雷码转换为二进制数据1011100111;再将二进制数据换算成角度值。

二进制数据换算成角度值的方法是:在本例中分辨率为10位,则二进制“1111111111”(&1023)相对应于0——3599(即0度至359.9度,因为360度也是0度),则换算出二者比为3599/1023; 那么本例中的1011100111(&743)对就角度=743*(3599/1023)等于“2613”(此值为BCD码)。

基于PLC程序实现格雷码转换成二进制码

基于PLC程序实现格雷码转换成二进制码

编码 器 由机械 位置决 定的每个 位置 的唯一性 , 它 无需 记
忆 , 无需找参 考点 , 而且不用 一直计 数 , 什么 时候需 要
发 的关键 。 科技馆 的展 品非 常讲 求互动性 、趣 味性和 科学性 ,
展厅也 大量使用 了各类 的传感器和控 制开 关。本文所介 绍 的用 PL C和 编码器 的方 式来 实现 获取绝对 位置 的方
《 自 动 化 技 术 与 应 用 》 2 0 1 7 年 第 3 6 卷 第 5 期
P L C与 D C S
PL C a n d DCS
基于 P L C程 序实现格 雷码转换成 二进 制码
马东来
( 中国科学 技术馆 , 北京 1 0 0 0 1 2 )
摘 要 : 文章介绍了一种解决处理绝对位置 的方法 。采用绝对位置编码器配 合西 门子 P LC实现 了程序 读取绝对位置 , 这 是一个高 效 、稳定 、误码率极 低的一个设计 , 此设计 的一 个关键环节 即是编码器 产生的格雷码转换成二进 制码的程序设计 。此案例 应用于科技馆展 品 , 也是展 品设计者值得借鉴 的好案 例。 关键词 : 编码器 ; 格雷码 ; P L C, 科技馆展 品
e n c o d e r g e n e r a t e s Gr a y c o d e i n t o bi n a r y c o d e p r o g r a m mi n g . Th i s c a s e a p p l i e s t o s c i e n c e a n d t e c h n o l o g y mu s e u r f l e x hi b i t s ,
1 引 言
在 中国科技馆新馆 四层 A厅有这样 一个互动展 品叫

第八章 FX2N系列PLC应用指令及编程方法 第十三节格雷码变换指令及触点形式的比较指令

第八章 FX2N系列PLC应用指令及编程方法 第十三节格雷码变换指令及触点形式的比较指令

S· D·
FNC 170 K1234 K3Y010 GRY
BIN 1234
b15
b0
S· 0 0 0 0 0 1 0 0 1 1 0 1 0 0 1 0
S· D·
X020
FNC 170 GRY
K3X000
D10
Gray 1234
X013
X010 X007
X000
S· 0 1 1 0 1 0 1 1 1 0 1 1
D· 0 1 1 0 1 0 1 1 1 0 1 1
Y023
Y020 Y017
Y010
Gray 1234
(a)格雷码变换指令使用说明
D· 0 0 0 0 0 1 0 0 1 1 0 1 0 0 1 0
b15
b0
BIN 1234
(b)格雷码逆变换指令使用说明
图8-163 格雷码变换与逆变换指令的使用说明
X000 K200 C10 Y010 X001 D0 K-10 Y011 X002 K678493 D10(D11) M3 M50
图8-165串联形触点比较指令应用与说明
(三)并联形触点比较指令
指令的名称、助记符、指令代码、操
作数和程序步数见表8-98。指令编程应 用如图8-166。
表8-98 并联形触点比较指令的要素
FX2N系列PLC是FX系列中高档次的超小型 化、高速、高性能产品,具有128种298条应用 指令。分为程序控制、传送与比较、四则运算 与逻辑运算、循环移位、数据处理、高速处 理、、便利指令、外部设备I/O处理、浮点操 作、时钟运算、格雷码转换、触点比较等十个 类型。由于学时有限,本章将介绍程序控制、 传送与比较、四则运算与逻辑运算、循环移位、 数据处理、高速处理、、便利指令、外部设备 I/O处理。其它由读者自学。

格雷码二进制码转换电路

格雷码二进制码转换电路

格雷码二进制码转换电路格雷码(Gray code),又称格雷码二进制码转换电路,是一种特殊的二进制编码方式。

它的特点是相邻的两个数值仅有一位二进制数发生变化,适用于数字和模拟电路中的编码和传输。

格雷码的起源可以追溯到19世纪,由法国数学家弗兰索瓦·格雷(François Gray)发明。

他的目的是设计一种编码方式,可以减少在数字传输过程中由于噪声、抖动等原因引起的误差。

在传统的二进制编码方式中,相邻的两个数值之间可能会发生多个二进制位的变化,这样在数字传输中就容易引起误差。

而格雷码通过仅改变一位二进制数来表示相邻的数值,可以有效地降低传输误差的风险。

格雷码的转换电路由多个逻辑门组成,常见的实现方式有反馈式和非反馈式两种。

反馈式格雷码转换电路使用触发器和逻辑门组成,适用于需要连续转换的应用场景。

非反馈式格雷码转换电路则使用逻辑门组成,适用于只需要单次转换的应用场景。

格雷码转换电路的核心是通过逻辑门的组合实现码字之间的变换。

逻辑门的输入信号由当前码字和目标码字决定,通过逻辑运算得到输出信号。

常见的逻辑门有与门、或门、非门等,它们可以实现不同的逻辑运算。

格雷码转换电路的功能包括格雷码到二进制码的转换和二进制码到格雷码的转换。

格雷码到二进制码的转换可以通过逻辑门的组合实现,将格雷码逐位进行异或运算,并与之前的结果进行与运算。

而二进制码到格雷码的转换则可以通过逻辑门的组合实现,将二进制码逐位进行异或运算,得到格雷码。

在数字电路中,格雷码转换电路广泛应用于各种编码器和解码器中。

编码器可以将多个输入信号转换为相应的格雷码输出,解码器则可以将格雷码输入转换为相应的输出信号。

格雷码转换电路还可以用于数字计数器、旋转编码器等应用中。

总结起来,格雷码二进制码转换电路是一种特殊的二进制编码方式,通过逻辑门的组合实现码字之间的变换。

它的应用范围广泛,可以用于数字电路中的编码和传输。

格雷码的特点是相邻的两个数值仅有一位二进制数发生变化,可以减少传输误差的风险。

格雷码转化二进制编程方法

格雷码转化二进制编程方法

2. 格雷码转换为自然二进制码根据格雷码转换为自然二进制码的转换规则,实际上就是不断的将格雷码与二进制数做异或操作,也就是说,不断的和本身的不同位数做异或操作,如原数据为32位的A,那么先将A向右移动一位,与本身进行异或,然后保留值为B,那么继续将A向右移动一位,与B进行异或,保留为C,依次类推,直到A=1为止。

程序流程图如下:保存输入数 TEMP,INPUT1如果输入数为0,那么直接返回数据0后退出如果TEMP不等于1,那么循环,否则返回数据TEMP右移1位,与输入值作不断异或功能块中的程序如下:INPUT 输入变量类型为DWORDTEMP 局部变量类型为DWORDINPUT1 局部变量类型为DWORDGRAY_TO_BIN 功能块返回变量返回类型为DWORDGRAY_TO_BIN:TEMP:=INPUT;INPUT1:=INPUT;IF TEMP=DWORD#0 THENINPUT1:=DWORD#0;GRAY_TO_BIN:=INPUT1;RETURN;END_IF;WHILE TEMP<>DWORD#1 DOTEMP:=SHR_DWORD(TEMP,UINT#1);INPUT1:=TEMP XOR INPUT1;END_WHILE;GRAY_TO_BIN:=INPUT1;上述代码在富士的SX系列PLC中试验没有问题,由于富士的SX系列PLC完全支持ST代码方式的编程,因此基本上可以不做修改的应用在西门子的S7系列的PLC中。

由于三菱的PLC中已经包含了自然二进制码转换为格雷码指令GRY以及格雷码转换为自然二进制码指令GBIN,因此上述代码应用于三菱系列的PLC已经没有意义,请使用三菱PLC本身附带的指令,因为西门子以及富士的SX系列PLC并没有附带转换指令,因此本人书写了上述代码用于补充SX系列的指令不足。

因為歐姆龍的ST不能支持數據移位指令,因此如果使用歐姆龍的話,那么FB中需要使用梯形圖來做哦。

格雷码、二进制码转换

格雷码、二进制码转换
Library IEEE; use IEEE.std_logic_1164.all;
entity and_gate is port(a,b: IN std_logic; y: out std_logic); end and_gate; architecture rhl of and_gate is begin y<=a and b; end rhl;
条件句中的“=>”不是操作符,只相当于“THEN”作用。
南理工紫金学院
EDA设计实验
由于case属于顺序语句, 在VHDL中顺序语句只能存 在与进程中。
南理工紫金学院
VHDL 常用基本语句
EDA设计实验
进程语句
进程主要用于描述顺序语句,其格式如下:
标记:process (敏感信号表 ) --变量声明语句; begin --顺序语句 end process; 敏感信号(包括端口信号)指那些值发生改变后能引起 进程语句执行的信号。当敏感信号发生改变时,进程启 动,begin和end之间的语句从上到下顺序执行一次,然 后返回进程语句开始,等待下一次敏感信号的变化。因 此进程语句有两种状态:等待状态和执行状态。 南理工紫金学院
1 声明部分包括:结构体所用的内部信号及数据类型; 元件例化声明。
2 结构体部分主要包括:并行语句信号赋值; 进程(顺序语句); 元件例化语句。 3 最后以end结束结构体部分。 南理工紫金学院
EDA设计实验
逻辑运算符
And(与),Or(或),Not(非), Nand(与非),Nor(或非),Xor(异或), Xnor(同或)。
EDA设计实验
第二节 格雷码、二进制码转换
南理工紫金学院
EDA设计实验
实验内容

格雷码简介及格雷码与二进制的转换程序解读

格雷码简介及格雷码与二进制的转换程序解读

格雷码简介及格雷码与二进制的转换程序格雷码简介及格雷码与二进制的转换程序格雷码简介格雷码(英文:GrayCode,GreyCode,又称作葛莱码,二进制循环码)是1880年由法国工程师Jean-Maurice-EmlleBaudot发明的一种编码[1],因FrankGray于1953年申请专利“PulseCodeCommunication”得名。

当初是为了机械应用,后来在电报上取得了巨大发展[2],现在则常用于模拟-数字转换[3]和转角-数字转换中[4]。

典型格雷码是一种具有反射特性和循环特性的单步自补码,它的循环、单步特格雷码简介及格雷码与二进制的转换程序格雷码简介格雷码(英文:Gray Code, Grey Code,又称作葛莱码,二进制循环码)是1880年由法国工程师Jean-Maurice-EmlleBaudot发明的一种编码[1] ,因Frank Gray于1953年申请专利“Pulse Code Communication”得名。

当初是为了机械应用,后来在电报上取得了巨大发展[2],现在则常用于模拟-数字转换[3]和转角-数字转换中[4] 。

典型格雷码是一种具有反射特性和循环特性的单步自补码,它的循环、单步特性消除了随机取数时出现重大误差的可能,它的反射、自补特性使得求反非常方便[5] 。

格雷码属于可靠性编码,是一种错误最小化的编码,因为它大大地减少了由一个状态到下一个状态时电路中的混淆。

由于这种编码相邻的两个码组之间只有一位不同,因而在用于模-数转换中,当模拟量发生微小变化而可能引起数字量发生变化时,格雷码仅改变一位,这样与其它码同时改变两位或多位的情况相比更为可靠,即可减少出错的可能性.这就允许代码电路能以较少的错误在较高的速度下工作。

格雷码在现代科学上获得了广泛的应用,人们还发现智力玩具九连环的状态变化符合格雷码的编码规律,汉诺塔的解法也与格雷码有关。

除了已知的特点,格雷码还有一些鲜为人知的性质。

三菱PLC指令详解

三菱PLC指令详解

INC
逻辑运算
WAND
WOR
WXOR
ROR
ROL指令
SFTL
SFTL
SFTR
SFTR
WSFR
WSFR
SFWR
SFWR
SFRD
ZRST
NEG求补
DECO解码
ENCO编码
BON
MEAN
பைடு நூலகம்UM
ANS和ANR
SQR
FLT
REF
REFF
HSCS
HSZ
SPD
PLSY
PWM
PLSY
PLSR
PLSV
IST
STMR
ALT
RAMP
ABSD
INCD
TTMR
STMR
SORT
ECMP
EZCP
浮点数四则运算
TCMP
TADD
TRD
格雷码
模拟量读写
LD触点比较
AND触点比较
OR触点比较
• 在子程序内最多可以允许有4层嵌套,也就是说在子 程序中可以嵌套调用其他子程序的次数最多可以有4 次。
• 这里有个FEND,它不同于END,END是所有程序结束指 令,而FEND是主程序结束指令,它之后还会执行子程 序或者中断程序。SRET则为子程序结束指令。
中断指令
WDT看门狗指令
FOR NEXT
For next
程序的0到9步,触发X0的上升沿信号,把M0导通,Z0、D10全部清空; 第9到23步,是一段循环指令,FOR K10表示这段程序循环10遍。第一遍, 由于变址寄存器Z0里面的数字为0,D0Z0这个地址变为D0(具体参考变址 寄存器的用法),ADD D10 D0Z0 D10,这条指令把D10加D0的数据放到D10 里面了,由于在程序上面用了D10,所以一开始D10保存的数据为0,经过 加法指令,D10里面保存数据就是D0,然后通过INC Z0加一指令,让Z0自 加1,等于1.然后进入循环第二遍.第二遍,Z0里面的数据为1,D0Z0这个 地址变为D1,ADD D10 D0Z0 D10这条指令把D10(经过第一遍扫描,D10里 面保存了D0)加D1的数据放到D10里面了,那么 D10里面的数据变为 D0+D1,然后通过INC Z0加一指令,让Z0自加1,等于2.然后进入循环第三 遍。… …第10遍,Z0里面的数据为9,D0Z0这个地址变为D9,ADD D10 D0Z0 D10这条指令把D10(经过第9遍扫描,D10里面保存了D0+D1+… +D8) 加D9的数据放到D10里面了,那么 D10里面的数据变为D0到D9里面全部 数据的总和,然后通过INC Z0加一指令,然后退出循环,进入下一步。 M8000常通触点段开M0,当进入PLC下一个工作周期时,由于循环指令里 面的程序都是由M0常开触点触发的,这是就不会再触发了,也就是,经 过一个PLC的工作周期,就把D0到D9里面的数据加起来,放到了D10里面 了。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档