三菱PLC BIN BCD指令详解
因为1位BCD码需要4位2进制的存储空间,而BCD码的取值范围为0~9,所以1010表示为A,是无法显示的,是非法的BCD码值,这就是为啥D1只能显示0-9的原因。
(1)BCD变换指令BCD (D)BCD(P)指令的ALCE编号为FNC18。它是将源元件中的二进制数转换成BCD码送到目标元件中,如图3-41所示。如果指令进行16位操作时,执行结果超出0~9999范围将会出错;当指令进行32位操作时,执行结果超过0~99999999范围也将出错。PLC中内部的运算为二进制运算,可用BCD指令将二进制数变换为BCD码输出到七段显示器。(2)BIN变换指令BIN (D)BIN(P)指令的编号为FNC19。它是将源元件中的BCD数据转换成二进制数据送到目标元件中,如图 1所示。常数K不能作为本指令的操作元件,因为在任何处理之前它们都会被转换成二进制数。使用BCD/BIN指令时应注意:1)源操作数可取KnK、KnY、KnM、KnS、T、C、D、V和Z,目标操作数可取KnY、KnM、KnS、T、C、D、V和Z;2)16位运算占5个程序步,32位运算占9个程序步。 BIN K2X000 D0 K2X000表示由X0~X7组成的两个位元件组.X0为数据最低位(首位)以上指令表示将由X0~X7组成的两个BCD码转换为二进制后送到D0
BIN和BCD是一个数据转换指令,这两条指令是二进制与bcd码之间的相互转换,二进制转BCD需要先转成10进制。
BIN码就是二进制编码。比如十进制数9用8位BIN码表示就是00001001;
BCD码就是用四位二进制数表示一位十进制数的编码,如8424码等,比如十进制数9用BCE码表示就是1001;
1、例:BIN K2X0 D0
K1代表4位,K2代表8位,也就是把二进制数(X0-X7)换到十进制数(D0)中。
2、例:BCD D0 K2Y0
是把十进制数(D0)转换成二进制数(Y0-Y7)中。
扩展资料:
三菱plc程序指令设计方法
1、程序设计
根据系统的控制要求,采用合适的设计方法来设计三菱PLC程序。程序要以满足系统控制要求为主线,逐一编写实现各控制功能或各子任务的程序,逐步完善系统指定的功能。除此之外,程序通常还应包括以下内容:
(1)三菱PLC初始化程序。在三菱PLC上电后,一般都要做一些初始化的操作,为启动作必要的准备,避免系统发生误动作。初始化程序的主要内容有:对某些数据区、计数器等进行清零,对某些数据区所需数据进行恢复,对某些继电器进行置位或复位,对某些初始状态进行显示等等。
(2)三菱PLC检测、故障诊断和显示等程序。这些程序相对独立,一般在程序设计基本完成时再添加。
(3)三菱PLC保护和连锁程序。保护和连锁是程序中不可缺少的部分,必须认真加以考虑。它可以避免由于非法操作而引起的控制逻辑混乱,。
2、三菱PLC程序模拟调试
程序模拟调试的基本思想是,以方便的形式模拟产生现场实际状态,为程序的运行创造必要的环境条件。根据产生现场信号的方式不同,模拟调试有硬件模拟法和软件模拟法两种形式。
(1)硬件模拟法是使用一些硬件设备(如用另一台PLC或一些输入器件等)模拟产生现场的信号,并将这些信号以硬接线的方式连到PLC系统的输入端,其时效性较强。
(2)软件模拟法是在三菱PLC中另外编写一套模拟程序,模拟提供现场信号,其简单易行,但时效性不易保证。模拟调试过程中,可采用分段调试的方法,并利用编程器的监控功能。
参考资料:百度百科-三菱PLC
BIN和BCD是一个数据转换指令
BIN K2X0 D0
K1代表4位,K2代表8位,也就是把二进制数(X0-X7)换到十进制数(D0)中。
BCD D0 K2Y0
是把十进制数(D0)转换成二进制数(Y0-Y7)中。
就是把X0到X7里的数据写到D0里,X0为1,X1为2,X2为4,X3为8,X4为10,X5为20,X6为40,X7为80。当然了,它只把X0到X7为1的数据写进去了。例如:X1=1,X2=0,X3=1时,D0的数据为(2+8)10。
这两条指令是二进制与bcd码之间的相互转换,二进制转BCD需要先转成10进制
门航复方: BIN和BCD是一个数据转换指令BIN K2X0 D0 K1代表4位,K2代表8位,也就是把二进制数(X0-X7)换到十进制数(D0)中.BCD D0 K2Y0是把十进制数(D0)转换成二进制数(Y0-Y7)中.
大余县15752149285: 三菱PLCBIN指令 - ?
门航复方: BIN K4X0 D0,如果K4X0=K1234,那么D0=K0,如果K4M0=H1234,那么D0=K1234. 因为BIN指令中会把K4X0中的数据当成BCD码,将BCD码转成BIN吗,如果K4X0=K1234就=H4D2,BCD码中是没有这个数据的,BCD码是H0000到H9999,但是其中不包括所有带字母的十六进制数字,因此这个BCD码就是错误了,转成BIN就是没结果的,所以D0=K0,或者说是保持上次正确转换的结果不变.当时如果K4M0=H1234就不同了,BCD码可以是H1234,就能转换,转换出来就是D0=K1234了. 望采纳......
大余县15752149285: PLC中BIN和BCD码的区别? - ?
门航复方: 一、工作内容不同 BCD是将源元件中的二进制数转换为BCD码送到目标元件中.BIN是将源元件中的BCD码转换为二进制数送到目标元件中. 二、出错情况不同 BCD对于l 6位或32位二进制操作数,若变换结果超出0-9999或0-99999999的范围就会出错.BIN常数K不能作为本指令的操作元件.如果源操作数不是BCD码就会出错. 三、设备运用不同 BCD指令常用于将PLC中的二进制数变换成BCD码输出以驱动LED显示器. BIN指令常用于将BCD数字开关的设定值输入到PLC中. 参考资料来源:百度百科-BCD码参考资料来源:百度百科-二进制数
大余县15752149285: 三菱PLC指令SMOV D2 K2 K2 D1 K3是什么意思??? - ?
门航复方: 这个你看下就能理解了: SMOV D1 K4 K2 D2 K3当D1的值是251,D2的值为0时,执行上述指令的结果是D2的值为20 解释:D2的第4位及第1位在从D1传送时不受任何影响.将源数据(BIN)的BCD转换值从其第4位起的低2位部分向目标的第3位开始传送,然后将其转换回BIN码:D1的值251转换成BCD码后表示为 0 2 5 1 ,而D2的值0转换成BCD码后表示为 0 0 0 0 执行指令后,D1的第4位起的低2位为 0 2 ,送给D2的第3位起的低2位,D2值的BCD就变为 0 0 2 0 其值则为20当D1的值是1251,D2的值为21时,执行上述指令的结果是D2的值为121.
大余县15752149285: 三菱PLCBCD码如何输入 - ?
门航复方: 给一个邮箱吧,我给你做程序,门禁就三块输入,比较和输出,输入有两种方式:1.走通讯,这种方法是现在真正的门禁机常用的办法,就是把你的按钮的信息以并行或者串行的方式经过处理发送给中央处理单元,中央处理单元把输入的部分和设置的密码进行比较判定是否输出一个信号来开门.2..布尔量输入,就是把各个按键的信号直接引入处理单元的bool量信号输入端,处理器根据输入端的地址来判断输入的是多少,然后和密码比较后判定是否开门.我估计你是做后一种,前一种一般用单片机做的比较多.
大余县15752149285: 在plc中bin是什么意思 - ?
门航复方: 你指的是BIN指令么,这个指令是将BCD码转成BIN码的指令. 望采纳......
大余县15752149285: 三菱plc m8002 bin d224 d1 什么意思 - ?
门航复方: M8002是内部特殊继电器,PLC得电时动作一个循环.d224和d1都是数据寄存器,能存数字.bin:将二进制数“d224”转换成相对应的BCD数,并保存在目标(d1)中.如果源数据没有提供BCD格式,那么就会产生错误.这条指令用于从指轮开关中读取数据的路径.整条的意思就是PLC一得电第就吧d224里面的二进制数转换成BCD数并存到d1中.
大余县15752149285: 三菱BINP怎么用? - ?
门航复方: 1.你所说的是BIN变换指令,即把plc外部输入的BCD码转化BIN(二进制码),因为plc接受的是BIN(二进制)码输入. 2.比方说,外部输入的25,即BCD码00100101,如果直接输入就是37了,所以要转化BIN码,即 00011001 3.这里不好说清楚,你只要理解上面就明白了,希望对你有帮助.
大余县15752149285: 三菱PLC的BCD功能指令怎么用 求解释 BCD D0 K1Y0这一条 - ?
门航复方: 是将D0中的值转为BCD码,然后送到K1Y0这个单元中. 例如:D0=0,则:Y0,Y1,Y2,Y3均为OFF.D0=1,则:Y0为ON,Y1,Y2,Y3均为OFF.D0=2,则:Y1为ON,Y0,Y2,Y3均为OFF.D0=3,则:Y0,Y1为ON,,Y2,Y3均为OFF. 以此类推.
大余县15752149285: 初学三菱PLC,关于BCD码,如图所示. - ?
门航复方: D10 里的二进制是0000 0010 0001 0010 16进制是0212 化为十进制就是两个256+1个16加2=0530 你的K0528是错的 所以 你就不知道怎么算的了 不知道是哪个讲的例题 误人子弟 BCD指令 就是把212用2进制表示为0010 0001 0010 这个0010 0001 0010数用16进制读为十进制 530 用BCD读 还是212 0010是2 0001是1 0020是2 例如 16进制FF 就是十进制255 255用BCD码表示就是0010 0101 0101 0010 0101 0101 这个数用十进制来读16进制是数是读为597