OMRON的HOSTLINK协议

    我在使用OMRON的PLC时一般都用无线传输,无线传输的数据也大都采用透明方式。设备主要分为两种,一种是无线电台,一种是GPRS模块。(无线电台是一家公司从加拿大进口的丝贝克的 跳频电台,http://www.dlmytech.com/ 网站有详细的产品列表),即然使用无线数据模式,所以对于PLC之间来说,只要能识别设备,地址也不是很重要了,但我还是会按着顺序对PLC进行址编号。

     HOSTLINK协议也是应答式方式,具体的内容请参考相关的资料,这里给出一段计算校验码的代码,如下:

 

ExpandedBlockStart.gif View Code
///   <summary>
        
///  将数据进行FCS校验,并返回一个完整的命令字符串
        
///   </summary>
        
///   <param name="data"> 增加FCS校验的数据 </param>
        
///   <returns> 带有FCS校验验并可发送到 OMRON PLC的数据 </returns>
         public   static   string  FCS( string  data)
        {
            
string  hostlink  =  data  +  ComputeFCS(data)  +   " * "   +  ( char ) 13 ;
            
return  hostlink; 
        }
至于这个为什么叫FCS校验我没问过也不太清楚,是以前我的同事都这样命名的。
///   <summary>
        
///  上位机校验
        
///   </summary>
        
///   <param name="linkstring"> 进行校验的数据,以@开始的字符串 </param>
        
///   <returns></returns>
         private   static   string  ComputeFCS( string  linkstring)
        {
            
char  inFcs  =  ( char )linkstring[ 0 ];
            
int  fcsResult  =  ( int )inFcs;
            
for  ( int  i  =   1 ; i  <  linkstring.Length; i ++ )
            {
                inFcs 
=  ( char )linkstring[i];
                fcsResult 
^=  ( int )inFcs;
            }
            
return  fcsResult.ToString( " X " );
        }
//HOSTLINK协议的校验码校验很简单,从第一位到最后一位进行累异或运算,最后的结果的高低位相易。
ExpandedBlockStart.gif View Code
///   <summary>
        
///  对带有FCS校验的数据进行校验
        
///   </summary>
        
///   <param name="receives"> 带有FCS的数据 </param>
        
///   <returns> 校验正确返回 true 否则返回 false </returns>
         public   static   bool  CheckFCS( string  receives)
        {
            
int  i  =  receives.IndexOf( ' * ' );
            
string  data  =  receives.Substring( 0 , i - 2 );
            
if  (receives.Substring(i  -   2 2 ).Equals(ComputeFCS(data)))
                
return   true ;
            
else   return   false ;
        }
     这就是一个简单的HOSTLINK协议校验计算的类,我已经打成DLL形式,在应用的时候调用,并已经用在很多项目上了。
     希望能给初用这个协议的人员提供一点帮助。

转载于:https://www.cnblogs.com/aidydream/archive/2011/04/15/HOSTLINK.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值