求助s7200 plc与富士变频器有关问题 点击:278 | 回复:4



jason576087

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 7回
  • 年度积分:0
  • 历史总积分:31
  • 注册:2011年10月25日
发表于:2011-10-25 21:00:16
楼主

现在尝试做plc与变频器之间的通信,plc是西门子s7-200,变频器是富士
编程遇到的问题,
第一:我想用触摸屏设置变频器的参数,例如“10Hz”,这个数进入plc后是十进制还是十六进制?(因为通信要十六进制的。)
第二:我现在plc接收触摸屏的频率,经过编程,例如使得变为“1FA0”,现在要把它拆分为四个字节“1”“F”“A”“0”。我尝试用一个方法,就是1FA0除1000得1,1FA0除100再减第一个数乘1000得F(即(1FA0-1000)/100),0FA0除10得A等等,,,但是我用串口工具调试发现,得到“1”“F”“0”“0”,第三和第四个字节出错。如果有其他的方法,也可以用你的方法。。。

 





yjig

  • 精华:2帖
  • 求助:5帖
  • 帖子:97帖 | 5237回
  • 年度积分:0
  • 历史总积分:12514
  • 注册:2004年6月04日
发表于:2011-10-25 22:08:20
1楼

我来回答:

1、按常规,你说的10HZ并非是在显示屏上输入10,而是1000,多出来的两位是小数,换算成16 进制就是03E8。

2、对于PLC而言,16进制与10进制是一样的结果,因为在PLC的内部,全部都以2进制运算。也就是说,你输入1000,与输入16#03E8是一样的。

3、你说的用相除来拆分16位,每4位组成一个新的ASCII(并非是4个字节),确实是一个方法,但运算太麻烦。其实PLC的自身就具备拆分功能指令,可以用“HTA”指令,如:HTA    VB300,    VB102,   4 //将VB300-301计2个数据,转换到VB102-115(ASCII)

上式中,VW300=16#03E8,也就是说VB300=16#03,VB301=16#E8,经过转换后,VB102=16#30(ASCII下同)、VB103=16#33、VB104=16#45、VB105=16#38

 

yjig

  • 精华:2帖
  • 求助:5帖
  • 帖子:97帖 | 5237回
  • 年度积分:0
  • 历史总积分:12514
  • 注册:2004年6月04日
发表于:2011-10-25 22:23:46
2楼

在网络上搜索一下,还真有人这么算,不过,这需要有足够的耐心,才能把程序理顺,以下是网上的一段程序,是台达LCR校验,令人看得眼花缭乱。

jason576087

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 7回
  • 年度积分:0
  • 历史总积分:31
  • 注册:2011年10月25日
发表于:2011-10-25 22:54:52
3楼
哦哦,,,我尝试一下你的方法吧,,,另外附上我的一段程序给你看看,,,谢谢你了。。。

jason576087

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 7回
  • 年度积分:0
  • 历史总积分:31
  • 注册:2011年10月25日
发表于:2011-10-26 12:11:01
4楼
问题已解决了。。。用带余数除法指令。。。。就可以了。。。刚接触s7-200plc,,,对指令不熟悉。。。高手莫见怪。。。

热门招聘
相关主题

官方公众号

智造工程师