登录
首页 PLC论坛 欧姆龙OMRON
回帖 发帖
正文

主题:请教一下在OMRON PLC中的常数BCD码和4位16进制数的用法

点击:12357 回复:9

我是一个新手,在输入常数时怎样区分BCD码常数和4位16进制常数,比如我下面的程序是不是存在输入常数的错误,见图,为何用CX-PROGRAMMER5.0编程和CX-SIMULATOR1.5仿真不成功?
附件
06-03-26 19:00
忘记说明了,CPU已选择为CS1G/CJ1G
06-03-26 19:02
是不是傻子?
06-03-26 20:00
pycathiu 為何如此說?
1.模擬要切換到監視或執行模式!
2.輸出用HR試試。
06-03-26 20:15
利昌大哥,我是初学者,见笑了,解释一下我曾仿真了很多个程序了,都很成功。
只是在学习比较指令时,想比较两个十进制常数如,3与9时,如图程序怎么仿真也未成功,不知错误在哪?再有BCD码与字的4位16进制数应用上有些不明白?望赐教,谢谢!
06-03-26 20:30
好!
1. omron 宣告 十進制數值;數值前請加 & 符號!這代表你宣告的是十進制。
2. omron 宣告 十六進制數值;數值前請加 # 符號!這代表你宣告的是十六進制;此時;BCD與十六進制在數值9999以內編碼是相同的!不須刻意分辨它。
因此;若要輸入十六進制的10000時;您必須輸入 #2710 ;或是您不想使用十六進制輸入;可逕行輸入&10000 即可。
3.範例:
LD P_On
OUT TR 0
MOV (021) &3 D0
MOV (021) &2 D1
CMP (020) D0 D1
AND P _LE
LD TR0
AND P _EQ
OUT H 0.01
LD TR0
AND P _GT
OUT H 0.02
06-03-26 21:30
你的問題出在容器!
EX.
A=9
B=3
先指定一個容器將比較值裝進去!好!比誰錢多?先將前放皮夾裡~再來比!空值如何比較?
06-03-26 21:36
SORRY,我是看到楼主在将立即数9跟立即数3比较,所以觉得楼主的问题是不是一个正常思维的人提出的。
后来我发现这应该是OMRON在数值定义上的问题,没有了解OMRON的初学者是搞不清楚的。
OMRON对于数值的定义有以下基本法则:
1.定义通道,可以用0,1,~~,DM0,DM1~~,CIO00,CIO01~~
2.定义立即数,可以用#0,#1~~,&0,&1~~
所以楼主的程序编写是存在问题的,将两个立即数相比,是没有意义的。楼主的意思是否应该理解为3通道与9通道的数进行比较?
如果这样的话,程序应该写成:
cmp
    3
    9
06-03-27 13:32
谢谢利昌、pycathiu两位大哥,都怪小弟没能叙述清除,现在彻彻底底明白了。
谢谢谢谢谢谢谢谢谢谢!
以后预见问题还请两位不吝赐教!
06-03-27 20:37
利昌機電大哥:
   有问题请教,不知您还在用这个网和账号么?
我也是关于BCD和十六进制搞不清楚,您说9999以内二者编码是相同的,我怎么觉得不相同呢?
#0010,如果是BCD码,是否应该表示十进制数10?如果是十六进制,是否应该表示十进制数16?因为数位之间的进制是不一样的
18-05-13 11:03

工控新闻

更多新闻资讯