台达编程中的程序问题 点击:1229 | 回复:16



暮木

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:56帖 | 79回
  • 年度积分:0
  • 历史总积分:256
  • 注册:2007年4月04日
发表于:2007-04-12 14:32:00
楼主
   大家好:我是新手,刚接触台达PLC编程,我想请问几个问题,望热心人帮忙!
用模拟量输入模块输入温度,PH等,用FROM,TO指令读出后要转换成实际物理量,先减后除是吧?SUB D0 D200 D1000, [u]DEMUL D1000 K100 D1002[/u],MOV D201 D1004,DEDIV D1002 D1004 D1006,[u]DEDIV D1006 K10 D1008[/u],DINT D1008 1010, MOV D1010 D300,有下划线的那些,为什么呢??



xiao a

  • 精华:1帖
  • 求助:0帖
  • 帖子:102帖 | 555回
  • 年度积分:0
  • 历史总积分:958
  • 注册:2005年12月10日
发表于:2007-04-12 15:08:00
1楼
你加下划线的是32位的浮点数运算(就是带小数的运算)。

暮木

  • 精华:0帖
  • 求助:0帖
  • 帖子:56帖 | 79回
  • 年度积分:0
  • 历史总积分:256
  • 注册:2007年4月04日
发表于:2007-04-12 15:13:00
2楼
您好:首先谢谢你的回复,那个我知道的,读出来的数都是浮点数,我想问的是为什么要*K100而后/K10,

后台运行

  • 精华:0帖
  • 求助:0帖
  • 帖子:19帖 | 213回
  • 年度积分:0
  • 历史总积分:299
  • 注册:2006年10月25日
发表于:2007-04-12 15:35:00
3楼
你从那弄的这些公式,是抄下来的还是你自己写的

暮木

  • 精华:0帖
  • 求助:0帖
  • 帖子:56帖 | 79回
  • 年度积分:0
  • 历史总积分:256
  • 注册:2007年4月04日
发表于:2007-04-12 15:44:00
4楼
我自己写的

暮木

  • 精华:0帖
  • 求助:0帖
  • 帖子:56帖 | 79回
  • 年度积分:0
  • 历史总积分:256
  • 注册:2007年4月04日
发表于:2007-04-12 15:45:00
5楼
寄存器的地址是随便编的,我只是在台达PLC中模拟量读出后转化成物理量这块的运算不太懂,望高手指教

xiao a

  • 精华:1帖
  • 求助:0帖
  • 帖子:102帖 | 555回
  • 年度积分:0
  • 历史总积分:958
  • 注册:2005年12月10日
发表于:2007-04-12 16:03:00
6楼
如果单独的只是计算出D1008的值的话你可以直接用D1000除以D1004然后再乘以10得到D1008,但你看的这个程序就这么写这可能和数据的显示有关了吧,比如如果你想显示一下D1006的值,它就需要用D1000先乘以100后除以D1004得出的那你就只能这么做了。还有台达的D1000到D1010不都是特殊寄存器吗。你读出来的数据如果只是计算用的数据不该放到这些寄存器里。

后台运行

  • 精华:0帖
  • 求助:0帖
  • 帖子:19帖 | 213回
  • 年度积分:0
  • 历史总积分:299
  • 注册:2006年10月25日
发表于:2007-04-12 16:19:00
7楼
模块读出来的本来就是数字量了,还要你说的什么把模拟量转数字量吗?

暮木

  • 精华:0帖
  • 求助:0帖
  • 帖子:56帖 | 79回
  • 年度积分:0
  • 历史总积分:256
  • 注册:2007年4月04日
发表于:2007-04-12 16:24:00
8楼
是数字重量,但要和触摸屏连接

暮木

  • 精华:0帖
  • 求助:0帖
  • 帖子:56帖 | 79回
  • 年度积分:0
  • 历史总积分:256
  • 注册:2007年4月04日
发表于:2007-04-12 16:39:00
9楼
to:--qq哪个寄存器我乱写的没太在意,实际是用2000或200以上的
谢谢你的指点,不过若要是显示植也不是D1006的啊,显示的是D200和D201的,因为一个是偏宜一个是系数啊,这里做运算为的是在触摸屏上显示

xiao a

  • 精华:1帖
  • 求助:0帖
  • 帖子:102帖 | 555回
  • 年度积分:0
  • 历史总积分:958
  • 注册:2005年12月10日
发表于:2007-04-12 17:54:00
10楼
啊,那可能是因为触摸屏上输入系数是小数的,虽然触摸屏上显示格式为小数形式但实际在plc里仍以整数进行计算,比如触摸屏上输入D201为有两位小数的数据如20.35,但实际在plc里是2035,所以做计算时要么将除数扩大100倍,要么将被除数缩小100倍,实际如果只要得到最后D1008的值的话可以直接用D1000除以D1004然后再乘以10得到,但是这个程序这么做可能考虑到精度的问题,因为小数计算是有四舍五入的。

何勇平

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 81回
  • 年度积分:0
  • 历史总积分:55
  • 注册:2005年1月04日
发表于:2007-04-13 08:28:00
11楼

暮木

  • 精华:0帖
  • 求助:0帖
  • 帖子:56帖 | 79回
  • 年度积分:0
  • 历史总积分:256
  • 注册:2007年4月04日
发表于:2007-04-13 13:51:00
12楼
都来讨论讨论啊?

chenlin19226

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 6回
  • 年度积分:0
  • 历史总积分:8
  • 注册:2008年6月05日
发表于:2008-06-05 09:06:18
13楼
台达模拟量转换数字量的公式

一点意见

  • 精华:0帖
  • 求助:0帖
  • 帖子:6帖 | 895回
  • 年度积分:0
  • 历史总积分:1187
  • 注册:2002年7月29日
发表于:2008-07-07 14:35:49
14楼

转换出的数值范围所有模块的硬件手册都有说明,与输入的模拟量成比例变化

南风

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 343回
  • 年度积分:0
  • 历史总积分:1474
  • 注册:2002年9月21日
发表于:2008-07-07 14:54:11
15楼
浮点数的运算,D××××为32位运算

michael fan

  • 精华:0帖
  • 求助:0帖
  • 帖子:19帖 | 133回
  • 年度积分:0
  • 历史总积分:307
  • 注册:2007年11月13日
发表于:2008-07-09 09:36:01
16楼

之所以先乘后除是因为,运算的时候除法会舍去小数,所以先乘后除最大限度的减少误差。


热门招聘
相关主题

官方公众号

智造工程师