ASII码转十进制的程序 点击:759 | 回复:2



尘土_98

    
  • 精华:0帖
  • 求助:9帖
  • 帖子:31帖 | 13回
  • 年度积分:0
  • 历史总积分:68
  • 注册:2005年2月23日
发表于:2014-04-19 23:40:29
楼主

       本人在用信捷XC3的PLC与一款压力测试仪表之间进行通讯, 通讯的数据是ASII码,

而压力规格与实际压力之间的比较判定是十进制的,请问如何将ASII码转换成十进制数据

     信捷PLC没有这种指令,请问如何转换,最好能提供范例程序,谢谢




乖乖小笨熊

  • 精华:2帖
  • 求助:0帖
  • 帖子:1200帖 | 11283回
  • 年度积分:2326
  • 历史总积分:62523
  • 注册:2006年8月05日
发表于:2014-04-20 11:46:01
1楼

信捷PLC,XC3以上都可以直接转码,XC1、XC2我就不知道,因为我一直不用太低的

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 10回
  • 年度积分:0
  • 历史总积分:23
  • 注册:2005年9月12日
发表于:2014-05-29 13:14:03
2楼

和C功能块写的也可以转换:


/*************************************************************************

  FunctionBlockName:  ASCII_0

  Version:            1.0.0

  Author:            

  UpdateTime:         2013/11/16 12:14:39

  Comment:            

ASCII码表


W[0]地址为D30,码表地址

**************************************************************************/

void ASCII_0( WORD W , BIT B )

{

int i;

for(i=0;i<=9;i++)

{

W[0+i]=i;

}

}



/*************************************************************************

  FunctionBlockName:  AXIS01_C

  Version:            1.0.0

  Author:            

  UpdateTime:         2014-2-3 08:17:28

  Comment:            

底座编码器12位,4圈-精浦GEX60-4RE10LSB。

485输出ASCII码。该函数转换ASCII码为数值。

W[0]  地址为D10 --编码器返回值(ASCII格式)

W[20]  地址为D30 --ASCII码表地址

W[40]   地址为D50 --转换后的数

DW[50]   地址为D60 --组合成一个数值

**************************************************************************/

void AXIS01_C( WORD W , BIT B )

{

 int i;

 int k;    

 for(i=2;i<12;i++)

 {

   k=W[0+i]-48;

   W[40+i-2]=W[20+k];        

 }

 DW[50]=W[40+6]*1000+W[40+7]*100+W[40+8]*10+W[40+9];

}



热门招聘
相关主题

官方公众号

智造工程师