当前位置:
工控论坛
> >
产品
>
PLC
>
欧姆龙(OMRON)PLC
我要发帖
模拟量处理程序
点击:
991
| 回复:
13
飞鸿2008
关注
私信
精华:0帖
求助:0帖
帖子:13帖 | 23回
年度积分:0
历史总积分:80
注册:2005年10月07日
发表于:2007-12-06 16:57:00
楼主
模拟量在程序中做加,减,乘除运算时,是转换成带符号的BCD码进行的吗?因为刚采样来的是二进制数,那么在运算过程中有小数出现时又如何办呢?我看资料BCD码最大是9999,那对数据处理又有了限制,不知道兄弟们是怎么做的,可能我理解的有问题。我觉得模拟量处理上,西门子PLC就好使多了,很好理解。
分享到:
收藏
邀请回答
回复楼主
举报
西玛仪表 028-66505957 13808018567
关注
私信
精华:0帖
求助:2帖
帖子:54帖 | 1652回
年度积分:0
历史总积分:2355
注册:2006年4月18日
发表于:2007-12-06 17:25:00
1楼
我做模拟量的输入时大部分是采用工程量进行加减乘除计算的~要不就采用转换数值计算,如27468,65535等。所以不存在小数问题。
回复
引用
举报
蓝天月亮
关注
私信
精华:0帖
求助:0帖
帖子:37帖 | 1447回
年度积分:0
历史总积分:3594
注册:2007年10月22日
发表于:2007-12-06 19:20:00
2楼
不需要吧,现在欧姆龙CP1H就有很多功能了
回复
引用
举报
haha_gao
关注
私信
精华:0帖
求助:0帖
帖子:0帖 | 635回
年度积分:0
历史总积分:848
注册:2004年9月29日
发表于:2007-12-07 14:24:00
3楼
用指令转化一下数据类型呀
回复
引用
举报
Legoooooooooooooo
关注
私信
精华:0帖
求助:0帖
帖子:9帖 | 135回
年度积分:0
历史总积分:922
注册:2006年7月08日
发表于:2007-12-08 00:16:00
4楼
把所有相关浮点数放大10倍或100倍再进行运算,最后在电脑上显示结果别忘了缩小。
建议全部用二进制进行运算,不要用BCD。
回复
引用
举报
飞鸿2008
关注
私信
精华:0帖
求助:0帖
帖子:13帖 | 23回
年度积分:0
历史总积分:80
注册:2005年10月07日
发表于:2007-12-10 09:26:00
5楼
Legoooooooooooooo兄弟:对于二进制运算,进位怎么用呢?运算中采用进位运算吗?
回复
引用
举报
origin
关注
私信
精华:0帖
求助:0帖
帖子:4帖 | 10回
年度积分:0
历史总积分:55
注册:2002年9月14日
发表于:2007-12-10 16:21:00
6楼
用高级一点的PLC吧,低端的omronPLC不适合处理浮点数。
回复
引用
举报
pqsh
关注
私信
精华:0帖
求助:0帖
帖子:0帖 | 291回
年度积分:0
历史总积分:432
注册:2006年9月20日
发表于:2007-12-10 17:09:00
7楼
建议不做小数处理,并时刻注意精度要求.
要处理的话,如楼上所说,选浮点处理的plc.
回复
引用
举报
Legoooooooooooooo
关注
私信
精华:0帖
求助:0帖
帖子:9帖 | 135回
年度积分:0
历史总积分:922
注册:2006年7月08日
发表于:2007-12-11 15:50:00
8楼
飞鸿2008兄弟:
数据类型:
Int:-32767 +32768
UIint:0-65535
还不够用啊?
不够用可以用双整型。
这下足够了吧?
只要长度足够,根本不需要考虑进位的问题!
回复
引用
举报
李超X
关注
私信
精华:0帖
求助:0帖
帖子:1帖 | 84回
年度积分:0
历史总积分:101
注册:2006年4月21日
发表于:2007-12-11 17:05:00
9楼
下面引用由Legoooooooooooooo在 2007-12-8 0:16:00 发表的内容:
把所有相关浮点数放大10倍或100倍再进行运算,最后在电脑上显示结果别忘了缩小。<br>建议全部用二进制进行…
--------------------------------------------------------------------------------------------
回复
引用
举报
飞鸿2008
关注
私信
精华:0帖
求助:0帖
帖子:13帖 | 23回
年度积分:0
历史总积分:80
注册:2005年10月07日
发表于:2007-12-13 10:33:00
10楼
Legoooooooooooooo兄弟:
我做例子用,我MOV #0FA0 D0
* D0 #01F4 D1
我运行后,在*指令中怎么出现了D0是&3904,应该是&4000才对吧,不知道怎么回事,说来听听啊。
回复
引用
举报
飞鸿2008
关注
私信
精华:0帖
求助:0帖
帖子:13帖 | 23回
年度积分:0
历史总积分:80
注册:2005年10月07日
发表于:2007-12-13 10:40:00
11楼
Legoooooooooooooo兄弟:
我做例子用。MOV #0FA0 D0
* D0 #01F4 D1
很简单啊,可是在*指令中出现了D0是&3904,可是应该是&4000才对啊。这样再往下运算,结果就有一定的误差,不知道这么回事。
回复
引用
举报
飞鸿2008
关注
私信
精华:0帖
求助:0帖
帖子:13帖 | 23回
年度积分:0
历史总积分:80
注册:2005年10月07日
发表于:2007-12-13 11:46:00
12楼
不好意思,问题解决了。
回复
引用
举报
MEBO
关注
私信
精华:0帖
求助:0帖
帖子:12帖 | 236回
年度积分:0
历史总积分:0
注册:1900年1月01日
发表于:2008-01-31 22:23:00
13楼
haha
回复
引用
举报
热门招聘
相关主题
ABB控制器BRC300及余链-武汉...
[12778]
西门子s7200plc常见问题
[8077]
PLC是什么?什么是plc
[13065]
一个PLC高速脉冲输出口能接两...
[7787]
写个简单的PLC程序到底要几步...
[9700]
PLC程序莫名其妙丢失
[10465]
三菱plc的for next循环问题
[9042]
s7-200plc与PC通过RS485通信...
[21280]
ALTP指令的用法
[12622]
如何通过internet对西门子S7...
[9036]
官方公众号
智造工程师
客服
小程序
公众号