trio触摸屏联接的问题(数制转化) 点击:647 | 回复:4



gongkongedit

    
  • 精华:1099帖
  • 求助:0帖
  • 帖子:14392帖 | 54470回
  • 年度积分:0
  • 历史总积分:622
  • 注册:2008年9月08日
发表于:2005-04-06 16:04:00
楼主
我们现在用omron nt20s做主站,mc206做从站,触摸屏输入的数是16进制,输入到mc206为10进制,虽然触摸屏在做画面时可以用10或16进制选项,但在mc206里都为10进制数,比如:触摸屏输入11,进入mc206为17(table or vr区),而用户在输入11时,以为进入mc206的是11,不是17,这之间需要一个数值转化,我用到了hex,可这条指令好像是转化为字符型的了,不是整数型,如果来进行转化,请各位执教,呵呵



麦克疯

  • 精华:0帖
  • 求助:0帖
  • 帖子:11帖 | 856回
  • 年度积分:0
  • 历史总积分:1157
  • 注册:2001年12月10日
发表于:2005-04-06 16:29:00
1楼
直接用ASCII比较方便

gongkongedit

  • 精华:1099帖
  • 求助:0帖
  • 帖子:14392帖 | 54470回
  • 年度积分:0
  • 历史总积分:622
  • 注册:2008年9月08日
发表于:2005-04-06 16:38:00
2楼
能不能请钟老师说的详细些,具体是哪条指令?最好举个小例子

麦克疯

  • 精华:0帖
  • 求助:0帖
  • 帖子:11帖 | 856回
  • 年度积分:0
  • 历史总积分:1157
  • 注册:2001年12月10日
发表于:2005-04-07 08:48:00
3楼
请到http://bjyes.gkong.com上有联系方式,还有说明书可以下载。

Trio技术支持

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 150回
  • 年度积分:0
  • 历史总积分:201
  • 注册:2004年7月28日
发表于:2005-04-07 11:49:00
4楼
Omron触摸屏数字输入方式,在屏上显示方式上分为10进制与16进制,10进制方式在数据传输上是按照bcd码进行传输,举个例子:如你设置触摸屏为10进制输入方式,输入200,触摸屏将此数直接转换为16进制的0x0200,在plc或控制器侧得到的数就是16进制的0200,等于10进制的512,如果你设置为16进制输入方式,输入ff,则在plc或控制器侧得到的数就是0xff等于10进制的255。 Trio控制器内对数据的处理就是二进制数据,你选择10进制输入方式输入11,触摸屏按照bcd码方式传送,Trio控制器得到的数据就是0x11及就是17,你按照16进制输入11,则trio控制器得到的就是0x11=17,并不是控制器的问题。解决这样的问题有两个方法,第一是设置触摸屏按照16进制进行输入,但这样不太符合一般操作人员的习惯。第二是设置触摸屏按照10进制进行输入,在trio控制器编制一个小的数值转换子程序。下面是我在实际项目编的数值转换子程序,可能对你有用(尽供参考): bcdtobin: 'USE VR(1) AS DATA SOURSE VR(0)=VR(1) n0=VR(0) AND $000f GOSUB shiftdata n1=VR(0) AND $000f GOSUB shiftdata n2=VR(0) AND $000f GOSUB shiftdata n3=VR(0) AND $000f VR(1)=n0+n1*10+n2*100+n3*1000 RETURN shiftdata: 'use vr(0) as data sourse FOR bit=0 TO 12 IF(READ_BIT(bit+4,0)=1) THEN SET_BIT(bit,0) ELSE CLEAR_BIT(bit,0) ENDIF NEXT bit RETURN

热门招聘
相关主题

官方公众号

智造工程师