首页 上一页 1 2 下一页 尾页

(USS协议应用)西门子变频器参数的数据类型的区分? 点击:2712 | 回复:28



linas

    
  • 精华:1帖
  • 求助:0帖
  • 帖子:46帖 | 313回
  • 年度积分:0
  • 历史总积分:507
  • 注册:2005年9月24日
发表于:2007-05-24 11:51:00
楼主
在用西门子PLC通过USS指令控制变频器时,在读写变频器的参数时首先要确定参数的数据类型才能读写,但是参数的数据类型怎么区分:16位整型数、32位整型数、浮点数。
我看的一个例子上是这样说的:是用USS-WPM-D写指令把数据写到参数P731中,写入数据为16#00340003    
注释是这样说的16#00340003中的34表示52,而3表示3,所以此操作是向参数P731中写入52.3

而我认为这个参数应该属于浮点数,应为这个参数值是带小数点的数。
是我的理解错误还是数据类型不是这样区分的啊

急切盼望大家的帮助,谢谢谢谢拉



hanyun

  • 精华:2帖
  • 求助:0帖
  • 帖子:75帖 | 237回
  • 年度积分:0
  • 历史总积分:526
  • 注册:2006年2月21日
发表于:2007-05-25 13:54:00
21楼
你的理解很正确。

linas

  • 精华:1帖
  • 求助:0帖
  • 帖子:46帖 | 313回
  • 年度积分:0
  • 历史总积分:507
  • 注册:2005年9月24日
发表于:2007-05-26 08:41:00
22楼
谢谢 各位的帮助!总算理解的比较清楚了.  最主要是的能用就行了.

嘿嘿

第五世纪冰川

  • 精华:3帖
  • 求助:5帖
  • 帖子:37帖 | 4224回
  • 年度积分:3
  • 历史总积分:12263
  • 注册:2005年2月18日
发表于:2007-05-30 20:01:00
23楼
参数的数据类型:
MICROMASTER4 采用了许多不同数据类型的参数:整数,IEEE 浮点数等。
参数表中给出了以下一些参数类型:
U16:16-位无符号数(单字长)
U32:32-位无符号数(双字长)
I16:16-位整数(单字长)
I32:32-位整数(双字长)
浮点:IEEE 浮点格式(双字长)
I16 和I32 对MICROMASTER4 的用户参数不适用。U32 是双字长的整数,例如,P0731。这里,每个整数都用小数点分开。在小数点前面的部分放在PWE1 中,而小数点后面的部分放在PWE2中。

linas

  • 精华:1帖
  • 求助:0帖
  • 帖子:46帖 | 313回
  • 年度积分:0
  • 历史总积分:507
  • 注册:2005年9月24日
发表于:2007-06-02 11:21:00
24楼
在USS协议的介绍中是这么说的。
我感觉西门子的资料很散,必须把资料都看完才能全部理解。也许在就是它的特点吧!

ryyag

  • 精华:0帖
  • 求助:0帖
  • 帖子:44帖 | 1101回
  • 年度积分:0
  • 历史总积分:3075
  • 注册:2005年10月14日
发表于:2007-06-02 13:43:00
25楼
应该是6ES70??系列的矢量变频器

朱海峰

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 53回
  • 年度积分:45
  • 历史总积分:815
  • 注册:2007年1月30日
发表于:2007-06-03 22:34:00
26楼
这个问题我也疑惑过,我问过西门子的技术支持他们也没头绪,这种数是u32格式,格式解析如下,比如52.3
这里

dim pt as string
dim dian as string
dim TIP as string
dim tp as string
dim tp1 as string
dim data as string
dim A as integer
.........
只表示52.3的处理方法

pt="52.3";参数52.3

 TIP = CStr(pt)
 dian = InStr(1, TIP, ".")
 TP = Hex(Mid(TIP, 1, dian - 1))'截取52,变换为hex
 For A = 1 To 4 - Len(TP)'补齐为16位长度
 TP = "0" + TP
 Next A

  TP1 = Mid(TIP, dian + 1)'小数点后3,不变换数制,该
 For A = 1 To 4 - Len(TP1)'补齐为后16位长度
  TP1 = "0" + TP1
 Next A

data=TP+TP1'组合后的U32位数据格式16#00340003,52.3里面的点只是前后16位的分割界定不参与计算,这个我已经试过了,写入读出都是对的
 

朱海峰

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 53回
  • 年度积分:45
  • 历史总积分:815
  • 注册:2007年1月30日
发表于:2007-06-03 22:34:00
27楼
这个问题我也疑惑过,我问过西门子的技术支持他们也没头绪,这种数是u32格式,格式解析如下,比如52.3
这里

dim pt as string
dim dian as string
dim TIP as string
dim tp as string
dim tp1 as string
dim data as string
dim A as integer
.........
只表示52.3的处理方法

pt="52.3";参数52.3

 TIP = CStr(pt)
 dian = InStr(1, TIP, ".")
 TP = Hex(Mid(TIP, 1, dian - 1))'截取52,变换为hex
 For A = 1 To 4 - Len(TP)'补齐为16位长度
 TP = "0" + TP
 Next A

  TP1 = Mid(TIP, dian + 1)'小数点后3,不变换数制,该
 For A = 1 To 4 - Len(TP1)'补齐为后16位长度
  TP1 = "0" + TP1
 Next A

data=TP+TP1'组合后的U32位数据格式16#00340003,52.3里面的点只是前后16位的分割界定不参与计算,这个我已经试过了,写入读出都是对的
 

linas

  • 精华:1帖
  • 求助:0帖
  • 帖子:46帖 | 313回
  • 年度积分:0
  • 历史总积分:507
  • 注册:2005年9月24日
发表于:2007-06-05 11:10:00
28楼
朱海峰:  你好!老兄!你是做软件的吧! 这是什么语言啊.

看的有点模糊,但是大概意思明白.

热门招聘
相关主题

官方公众号

智造工程师
    首页 上一页 1 2 下一页 尾页