S7-300的小技巧 点击:1140 | 回复:20



张余

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:44帖 | 26回
  • 年度积分:0
  • 历史总积分:212
  • 注册:2005年3月27日
发表于:2007-11-20 06:50:00
楼主
    我想问问在300中怎么可以将REAL变成int,例如把8.0变成8(8.0存在MD中)



scadle

  • 精华:0帖
  • 求助:0帖
  • 帖子:6帖 | 4回
  • 年度积分:0
  • 历史总积分:0
  • 注册:2004年5月13日
发表于:2007-11-20 07:52:00
1楼
ronud or trunc?

“说不得”

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 10回
  • 年度积分:0
  • 历史总积分:16
  • 注册:2005年3月25日
发表于:2007-11-20 11:32:00
2楼
MOVE也可以吧

yuanle

  • 精华:0帖
  • 求助:0帖
  • 帖子:9帖 | 10208回
  • 年度积分:2747
  • 历史总积分:48332
  • 注册:2005年4月22日
发表于:2007-11-20 11:33:00
3楼
下面引用由“说不得”在 2007-11-20 11:32:00 发表的内容:
  MOVE也可以吧
--------------------------------------------------------------------------------------------
MOVE不可以

“说不得”

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 10回
  • 年度积分:0
  • 历史总积分:16
  • 注册:2005年3月25日
发表于:2007-11-20 11:42:00
4楼
为什么MOVE不可以呢?

heidai

  • 精华:0帖
  • 求助:0帖
  • 帖子:11帖 | 1835回
  • 年度积分:0
  • 历史总积分:2824
  • 注册:2007年5月23日
发表于:2007-11-20 12:04:00
5楼
有类型转换的函数,查一下

guafa58

  • 精华:1帖
  • 求助:0帖
  • 帖子:43帖 | 2142回
  • 年度积分:4
  • 历史总积分:3969
  • 注册:2006年1月13日
发表于:2007-11-20 12:11:00
6楼
看指令说明阿,编程手册上说的很明白阿

张余

  • 精华:0帖
  • 求助:0帖
  • 帖子:44帖 | 26回
  • 年度积分:0
  • 历史总积分:212
  • 注册:2005年3月27日
发表于:2007-11-20 14:05:00
7楼
   哪个函数数啊,请说明点好吗,基本指令只有I-DI,MOVE 怎么用啊

yuanle

  • 精华:0帖
  • 求助:0帖
  • 帖子:9帖 | 10208回
  • 年度积分:2747
  • 历史总积分:48332
  • 注册:2005年4月22日
发表于:2007-11-20 14:19:00
8楼
下面引用由张余在 2007-11-20 14:05:00 发表的内容:
     哪个函数数啊,请说明点好吗,基本指令只有I-DI,MOVE 怎么用啊
--------------------------------------------------------------------------------------------
如果您使用Fuji的PLC,那么我可以肯定的告訴您,RealToInt函數就可以。
但是您用的是西門子的PLC,那么這個函數是不存在的,用戶需要自行編寫程式來解決。
用戶需要先使用指令Trunc來將Real類型轉換為DINT。
然后通過MOVE指令來讀取DINT的低16位,但是讀取前應考慮DINT的低16位是否超限,然后再進行讀取。

寒冷

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 167回
  • 年度积分:10
  • 历史总积分:513
  • 注册:2005年6月23日
发表于:2007-11-20 15:17:00
9楼
1、用RUND转成双精度整数再转成IND。
2、用DB数据块直接读取DB地址数,用DB.DBW克可直接读取。

张余

  • 精华:0帖
  • 求助:0帖
  • 帖子:44帖 | 26回
  • 年度积分:0
  • 历史总积分:212
  • 注册:2005年3月27日
发表于:2007-11-20 15:29:00
10楼
 to  yuanle:
     yuanle你好,你给解决了好几个问题,真感谢你
  你说的意思是
  比如8.0(REAL)开始存在MD60  
Trnnc  MD60    MD100   把MD60(REAL) 变成  MD100(DINT)
MW100存的就是我想要的8(INT)吗?
不用MOVE指令不也可以吗?
  

张余

  • 精华:0帖
  • 求助:0帖
  • 帖子:44帖 | 26回
  • 年度积分:0
  • 历史总积分:212
  • 注册:2005年3月27日
发表于:2007-11-20 15:34:00
11楼
 to  寒冷
    你说的 1  ROUND  MD60   MD100  (REAL->DINT)
           DINT到INT  用什么指令啊?
           2 8.0(REAL)存在DB1.DBD0
             DB1.DBW0  就是8(整型)吗?

“说不得”

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 10回
  • 年度积分:0
  • 历史总积分:16
  • 注册:2005年3月25日
发表于:2007-11-20 16:29:00
12楼
好象是直接读DB地址比较方便吧

寒冷

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 167回
  • 年度积分:10
  • 历史总积分:513
  • 注册:2005年6月23日
发表于:2007-11-20 17:25:00
13楼
to张
 你要的是整数,用DB块是非常简单的。
      8.0(REAL)存在DB1.DBD0
          取:   DB1.DBW0  就是8(int)

寒冷

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 167回
  • 年度积分:10
  • 历史总积分:513
  • 注册:2005年6月23日
发表于:2007-11-20 17:25:00
14楼
to张
 你要的是整数,用DB块是非常简单的。
      8.0(REAL)存在DB1.DBD0
          取:   DB1.DBW0  就是8(int)

寒冷

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 167回
  • 年度积分:10
  • 历史总积分:513
  • 注册:2005年6月23日
发表于:2007-11-20 17:25:00
15楼
to张
 你要的是整数,用DB块是非常简单的。
      8.0(REAL)存在DB1.DBD0
          取:   DB1.DBW0  就是8(int)

yuanle

  • 精华:0帖
  • 求助:0帖
  • 帖子:9帖 | 10208回
  • 年度积分:2747
  • 历史总积分:48332
  • 注册:2005年4月22日
发表于:2007-11-20 17:28:00
16楼
下面引用由寒冷在 2007-11-20 17:25:00 发表的内容:
  to张<br>&nbsp;你要的是整数,用DB块是非常简单的。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;8.0(REAL)存…
--------------------------------------------------------------------------------------------
如果您不做數據判斷而直接使用結果可能是這樣的,由于最高位為1,因此數據可能成為負數呈現的哦。

望尽天涯路

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 1回
  • 年度积分:0
  • 历史总积分:1
  • 注册:2008年1月20日
发表于:2008-04-27 20:17:40
17楼

先把实数转换为双整数,然后是双整数转换为整数,这样应该可以把。。。

TRUNC    MD60,AC1

DTI     AC1,MD100

 

苗子

  • 精华:0帖
  • 求助:1帖
  • 帖子:363帖 | 2721回
  • 年度积分:0
  • 历史总积分:5525
  • 注册:2002年11月15日
发表于:2008-04-28 14:11:18
18楼

L P#8.0

T md30

slovez_1314

  • 精华:0帖
  • 求助:0帖
  • 帖子:96帖 | 732回
  • 年度积分:0
  • 历史总积分:1884
  • 注册:2006年11月16日
发表于:2008-04-28 15:59:54
19楼

非党好做的兄弟             

龙唐西门道

  • 精华:0帖
  • 求助:0帖
  • 帖子:10帖 | 301回
  • 年度积分:1
  • 历史总积分:787
  • 注册:2004年2月26日
发表于:2008-04-28 16:31:55
20楼
回复内容:
对:望尽天涯路 关于

先把实数转换为双整数,然后是双整数转换为整数,这样应该可以把。。。

TRUNC    MD60,AC1

DTI     AC1,MD100

 

内容的回复:


呵呵 你的这个貌似不对哦~~~~~~

热门招聘
相关主题

官方公众号

智造工程师