求教高手,VB中怎么设置单个位 点击:1334 | 回复:9



micro2000

    
  • 精华:1帖
  • 求助:0帖
  • 帖子:46帖 | 581回
  • 年度积分:0
  • 历史总积分:751
  • 注册:2003年10月08日
发表于:2006-05-11 18:04:00
楼主
Host_link协议中好像没有设置位这条指令,只有字,要设置一个位,就必须把这个位的字下传下去,这样会改变其他的位,很麻烦的,请教各位高手有没有更好的办法?



DL天天天蓝

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 51回
  • 年度积分:0
  • 历史总积分:55
  • 注册:2003年1月21日
发表于:2006-05-13 15:16:00
1楼
在VB中你可以把16个位集中起来,用一个字节的高4位代表控制信息,用低4位进行编码,在PLC中有解码指令。比如:在VB中的一个字节中,高4位的每一位用于代表不同设备的开关信息,如0代表关,1代表开,而低4位用于编码PLC中的16个控制位,PLC接收到此字节信息后,对此字节中的低4位进行解码,而高4位的每一位可以直接拿来用,能解码出你要控制的16个位到一个字中,VB字节中的低4位中的编码数值代表PLC中解码字中要置位的位的位置,然后用此字节的高4位控制信息来控制这些位的开和关。

micro2000

  • 精华:1帖
  • 求助:0帖
  • 帖子:46帖 | 581回
  • 年度积分:0
  • 历史总积分:751
  • 注册:2003年10月08日
发表于:2006-05-17 17:12:00
2楼
虽然。。。。。。,还是要谢谢你

gongkongedit

  • 精华:1099帖
  • 求助:0帖
  • 帖子:14392帖 | 54470回
  • 年度积分:0
  • 历史总积分:622
  • 注册:2008年9月08日
发表于:2006-06-07 11:20:00
3楼
这是我写的网络通讯的部分代码,原理是一样的,希望能对你有所启发!

组合
'    i = 0
'    If GL1.Index0 Then i = i + 1
'    If GL1.Index1 Then i = i + 2
'    If GL1.Index2 Then i = i + 4
'    If GL1.Index0M Then i = i + 8
'    If GL1.Index1M Then i = i + 16
'    If GL1.Index2M Then i = i + 32
'    If GL1.IndexZD Then i = i + 64
'    If GL1.SQ_Closed0 Then i = i + 128
'    If GL1.SQ_Closed1 Then i = i + 256

分离
'            GL1.Index0 = i  And 1
'            GL1.Index1 = i  And 2
'            GL1.Index2 = i  And 4
'            GL1.Index0M = i  And 8
'            GL1.Index1M = i  And 16
'            GL1.Index2M = i  And 32
'            GL1.IndexZD = i  And 64
'            GL1.SQ_Closed0 = i  And 128
'            GL1.SQ_Closed1 = i  And 256

ikkoku

  • 精华:0帖
  • 求助:1帖
  • 帖子:40帖 | 187回
  • 年度积分:0
  • 历史总积分:371
  • 注册:2006年4月07日
发表于:2006-06-07 11:47:00
4楼
学习

chenyilun

  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 244回
  • 年度积分:0
  • 历史总积分:863
  • 注册:2005年9月12日
发表于:2006-06-08 09:45:00
5楼
找omron compolet軟體測試 我的繁體網站http://ssomron.dyndns.org OMRON討論區

workero2

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 14回
  • 年度积分:0
  • 历史总积分:0
  • 注册:1900年1月01日
发表于:2006-06-09 20:43:00
6楼
查看FINS指令格式!你就明白了!

newchp

  • 精华:3帖
  • 求助:0帖
  • 帖子:113帖 | 3966回
  • 年度积分:0
  • 历史总积分:9364
  • 注册:2006年7月15日
发表于:2006-11-12 19:48:00
7楼
上面的设置太复杂了,可以简单地把要设置的位转换成16进制数据,相应位置1,再把数据发送到PLC。
当然还要正确运用VB的MSOMM控件,我是初学VB,不对之处,请各位指点。

流客

  • 精华:1帖
  • 求助:0帖
  • 帖子:7帖 | 252回
  • 年度积分:0
  • 历史总积分:548
  • 注册:2003年10月14日
发表于:2006-11-13 00:02:00
8楼
我做过,设置位不是很麻烦的.
http://www.lsllhd.com

天天感恩

  • 精华:1帖
  • 求助:0帖
  • 帖子:8帖 | 100回
  • 年度积分:0
  • 历史总积分:146
  • 注册:2006年8月15日
发表于:2006-11-14 22:25:00
9楼
FINS指令格式搞清楚

热门招聘
相关主题

官方公众号

智造工程师