怎样区分二进制,BCD码和十六进制 点击:5813 | 回复:16



zhoulin0421

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:6帖 | 90回
  • 年度积分:0
  • 历史总积分:511
  • 注册:2010年8月10日
发表于:2010-09-13 20:49:12
楼主
比如说我用MOV指令或四则运算指令,在没有说明的情况下怎样判断它在此表示的是二进制,BCD码还是十六进制?谢谢解惑!



芳季

  • [版主]
  • 精华:5帖
  • 求助:5帖
  • 帖子:86帖 | 5336回
  • 年度积分:0
  • 历史总积分:20165
  • 注册:2003年1月31日
发表于:2010-09-13 21:00:43
1楼
一般是由指令确定的。当数值不对的时候就报错。

sovish521

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 122回
  • 年度积分:0
  • 历史总积分:551
  • 注册:2008年12月11日
发表于:2010-09-14 00:29:46
2楼
看指令说明吧,都会解释是操作的什么数据类型

莫其麟

  • 精华:14帖
  • 求助:0帖
  • 帖子:120帖 | 5688回
  • 年度积分:0
  • 历史总积分:29157
  • 注册:2004年2月27日
发表于:2010-09-14 02:18:51
3楼
在台达DVP-PLC中,机器内的数据按二进制存放,可显示为十六进制;BCD码会有专门的指令,由设计(外接元器件)确定。

tigermu

  • 精华:6帖
  • 求助:0帖
  • 帖子:175帖 | 5410回
  • 年度积分:0
  • 历史总积分:19807
  • 注册:2003年1月19日
发表于:2010-09-14 05:22:54
4楼
是的,指令已经指定数据格式了,而且也有数据格式转换的指令。

云松梁光武

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 21回
  • 年度积分:0
  • 历史总积分:139
  • 注册:2010年5月25日
发表于:2010-10-25 21:08:31
5楼
二进制只有0与1,计算机、PLC一般都用它作通信或控制的,16进有0-15位,最大数是F,一般PLC都会自动把16进制数据自动化成2进制数来识别,BCD,BIN码就是为它而设置的。

robotH

  • 精华:0帖
  • 求助:0帖
  • 帖子:7帖 | 688回
  • 年度积分:0
  • 历史总积分:2433
  • 注册:2004年10月14日
发表于:2010-10-26 09:43:00
6楼

MOV指令根本不用管,就是简单的复制,原来是什么,MOV后还是什么。

加减乘除运算要看指令,BCD运算指令数据格式是BCD,二进制运算指令格式是二进制。二进制和十六进制是一回事。

彩云之滇东北

  • 精华:20帖
  • 求助:5帖
  • 帖子:107帖 | 2725回
  • 年度积分:0
  • 历史总积分:21121
  • 注册:2005年6月14日
发表于:2010-10-26 10:02:44
7楼

首先看自己操作的数据是什么类型,再选择相应类型的命令

隆回周扬

  • 精华:1帖
  • 求助:1帖
  • 帖子:11帖 | 35回
  • 年度积分:0
  • 历史总积分:576
  • 注册:2010年10月17日
发表于:2010-10-26 10:16:48
8楼
mov 后写源数据时加#号是16进制 。 不加时是十进制

robotH

  • 精华:0帖
  • 求助:0帖
  • 帖子:7帖 | 688回
  • 年度积分:0
  • 历史总积分:2433
  • 注册:2004年10月14日
发表于:2010-10-26 21:11:01
9楼
引用隆回周扬 的回复内容:mov 后写源数据时加#号是16进制 。 不加时是十进制


mov指令区分16进制还是十进制没有意义。就是数据的一个简单复制,无论十进制还是十六进制,结果都是一样的。

chenyilun

  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 244回
  • 年度积分:0
  • 历史总积分:863
  • 注册:2005年9月12日
发表于:2010-10-26 22:11:35
10楼

++指令是16進制

++B指令是10進制

B是BCD,如果運算中數值出現A~F就會產生指令錯誤.

Legoooooooooooooo

  • 精华:0帖
  • 求助:0帖
  • 帖子:9帖 | 135回
  • 年度积分:0
  • 历史总积分:922
  • 注册:2006年7月08日
发表于:2010-10-27 14:18:21
11楼

回复内容:
对:隆回周扬 关于mov 后写源数据时加#号是16进制 。 不加时是十进制 内容的回复:



不加代表通道,不要误人子弟哥们。

#10 是十六进制

&10是无符号十进制

+10、-10是有符号十进制

10是指10号通道,可以用10.00-10.15来访问位。

 

ZXC2010

  • 精华:0帖
  • 求助:5帖
  • 帖子:15帖 | 69回
  • 年度积分:0
  • 历史总积分:269
  • 注册:2010年10月09日
发表于:2010-10-28 08:24:34
12楼
楼上的对

azhao5211314

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 5回
  • 年度积分:0
  • 历史总积分:45
  • 注册:2008年5月10日
发表于:2011-01-19 21:41:56
13楼

各位高手,请指教一下怎样从R232口接受一个78位16进制数,在把其中的最大扭矩值31H 2EH  32H 33H  34H转换为十进制存到一个地址里。我没做过不知道怎么做,最好能用欧姆龙指令写个例子,小弟在这里先谢过了。

qizhitianyue

  • 精华:0帖
  • 求助:3帖
  • 帖子:17帖 | 92回
  • 年度积分:0
  • 历史总积分:133
  • 注册:2008年10月12日
发表于:2012-07-16 18:39:26
14楼

各位高人,在程序里有各种进制,应用场合都是什么。为什么不统一用一种进制,请指教

乡下猛男

  • 精华:0帖
  • 求助:0帖
  • 帖子:9帖 | 135回
  • 年度积分:0
  • 历史总积分:922
  • 注册:2006年7月08日
发表于:2012-12-30 14:45:01
15楼

回复内容:
对:隆回周扬关于mov 后写源数据时加#号是16进制 。 不加时是十进制 内容的回复:



大哥,不要误导别人。

#1234 表示16进制数值;

+1234 表示十进制有符号整数;

&1234 表示十进制无符号整数;

什么都不加1234 表示1234通道

miy_gongkong

  • 精华:0帖
  • 求助:2帖
  • 帖子:23帖 | 3065回
  • 年度积分:0
  • 历史总积分:12421
  • 注册:2008年9月18日
发表于:2012-12-30 17:45:31
16楼

引用 乡下猛男 的回复内容:回复内容:对:隆回周扬关于mov 后写源数据时加#号是16进制 。 不加时是十进制 内容的回复:大哥,不要误导别人。#1234 表示16进制数值;+1234 表示十进制有符号整数;&1234 表示十进制无符号整数;什么都不加1234 表示1234通道



最重要的一点,首先搞清楚是仕么PLC (硬件平台),然后去查编程手册,有相关的数据类型格式 说明;

不同的基础编码 表示方法,可以去网上搜,百度一搜,有很详细的介绍, 计算机表示数据的编码类型有: STRING(ASCII, UNICODE), BIN,BCD(8421码),GRAY(格雷码,或循环冗余码), 余三码.........等等;


热门招聘
相关主题

官方公众号

智造工程师