你现在位置:首页>技术论文>经验技巧>AB_PLC>正文
AB PLC自学笔记(7)
日期:2008-12-30 9:14:00 来源:本站整理  
点击: 作者:
点击【】放大字体.
2008-12-25 
WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)

WWW_P※LCJS_COM-PLC-)技.术_网

生蛋快乐\^_^/ 
WWW_PLC※JS_COM-PmLC-技.术_网

WWW_PLCJS_COM-PLC-技.术_网

有网友给我出了个题目,虽然我是ab新手,但是正好可以操练一番。 
WWW_P※LCJS_COM-PLC-)技.术_网

WWW_PL※CJS_COM-PLC-技.术_网

―――――――――――――――――――――――――― 
WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)

WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)

请教比较简单的addon的制作方法,比如定义一个简单的运算,我输入123456,输出是654321的规定,这样我用234对应432。该如何实现, 
WWW_PLCJS@_COM%-PLC-技.术_网

WWW_PLCJS@_COM%-PLC-技.术_网

―――――――――――――――――――――――――――――――――――― 
WW.W_PLC※JS_C,OM-PL,C-技.术_网

P.L.C.技.术.网——可编程控制器技术门户

第一感觉就是字符串颠倒,但是记得add-on里面的输入输出参数只能定义为int/sint/dint/real之类的简单类型,那么看来要转换数据类型了。于是打开logix5000软件里面的instruction help,找到了ASCII Conversion Instructions,里面有个dtos指令看来就是我需要的,把dint转换为string。于是定义了一个local参数,string类型,发现string参数有个len的“属性”(姑且这么叫吧,没看到相关资料的权威叫法),于是猜想就是该字符串的长度,于是在程序里面直接把该“属性”赋值给输出参数,测试一下,果然就是啊。接下来看看如何把字符串分解然后颠倒过来,本来想当然的要去找字符串函数(vb的思路),结果看了下string数据的结构,还有一个data数组,看来就是存储字符的,大喜,这下更easy了。用st写吧,定义的参数如下: 
WWW_PLCJS@_COM%-PLC-技.术_网

WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)

输入――IN1(DINT) 
WWW.PLCJS.COM——可编程控制器技术门户

W1WW_P4LCJS_COM-PLC-技.术_网

输出――OUT1(DINT) 
——可——编——程——控-制-器-技——术——门——户

WWcW_PLCJS_COM-PLC-技.术_网

LOCAL――TEMP_STR1,TEMP_STR2(STRING)/I,STR_LEN(INT) 
WWW.PLCJS.COM——可编程控制器技术门户

WW.W_PLCJS_COM-PLC-技.术_网

开始代码是如此写的: 
WWW_PLCJS_COM-PLC-技.术_网

WWW_PLCJS@_COM%-PLC-技.术_网

DTOS(IN1,TEMP_STR1); 
W1WW_P4LCJS_COM-PLC-技.术_网

WWW_PL※CJS_COM-PLC-技.术_网

STR_LEN:=TEMP_STR1.LEN; 
WWW_PLCJS_COM-PLC-技.术_网

WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)

IF STR_LEN>1 THEN 
plcjs.技.术_网

WWW_PLCJS@_COM%-PLC-技.术_网

   FOR I:=1 TO STR_LEN  BY 1 DO 
P.L.C.技.术.网——可编程控制器技术门户

plcjs.技.术_网

       TEMP_STR2.DATA[I-1]:=TEMP_STR1.DATA[STR_LEN-I]; 
P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户

WW.W_PLCJS_COM-PLC-技.术_网

   END_FOR;  
WWW_PLC※JS_COM-PmLC-技.术_网

WWW_P※LCJS_COM-PLC-)技.术_网

   STOD(TEMP_STR2,OUT1); 
P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户

P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户

ELSE 
WW.W_PLCJS_COM-PLC-技.术_网

WWW_PL※CJS_COM-PLC-技.术_网

   OUT1:=IN1; 
WW.W_PLC※JS_C,OM-PL,C-技.术_网

WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)

END_IF; 
WWW.PLCJS.COM——可编程控制器技术门户

WWW_PLCJS@_COM%-PLC-技.术_网

发现输出一直为0,很郁闷。开始怀疑for是否执行了,因为看手册里面说add-on不支持for指令,虽然前面曾经模拟过程序,表明for是可以执行的。后来又怀疑开始相信的len“属性”,发现都没问题。最后,我突然想到TEMP_STR2的len属性,发现居然是0!!!my god!再加一句话给TEMP_STR2的len赋值就ok了,最后代码如下: 
WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)

WW.W_PLC※JS_C,OM-PL,C-技.术_网

DTOS(IN1,TEMP_STR1);//输入数据转换为字符串 
WWW.PLCJS.COM——可编程控制器技术门户

P.L.C.技.术.网——可编程控制器技术门户

STR_LEN:=TEMP_STR1.LEN;//取得字符串长度 
WWW_P※LCJS_COM-PLC-)技.术_网

WWW_P※LCJS_CO※M-PLC-技-.术_网

TEMP_STR2.LEN:=STR_LEN;//转换后的字符串长度 
WWW_P※LCJS_CO※M-PLC-技-.术_网

WWW_PLCJS_COM-PLC-技.术_网

IF STR_LEN>1 THEN//转换字符串 
WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)

WWW_PLCJS@_COM%-PLC-技.术_网

   FOR I:=0 TO STR_LEN-1  BY 1 DO 
WWcW_PLCJS_COM-PLC-技.术_网

WWW_PLCJS@_COM%-PLC-技.术_网

       TEMP_STR2.DATA[I]:=TEMP_STR1.DATA[STR_LEN-I-1]; 
——可——编——程——控-制-器-技——术——门——户

WWW_PL※CJS_COM-PLC-技.术_网

   END_FOR;  
WWW_PL※CJS_COM-PLC-技.术_网

WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)

   STOD(TEMP_STR2,OUT1); 
WWW_PLCJS_COM-PLC-技.术_网

WWW_P※LCJS_CO※M-PLC-技-.术_网

ELSE 
WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)

——可——编——程——控-制-器-技——术——门——户

   OUT1:=IN1; 
WWcW_PLCJS_COM-PLC-技.术_网

WW.W_PLC※JS_C,OM-PL,C-技.术_网

END_IF; 
上一篇: AB PLC自学笔记(6)
下一: 没有了
评论内容
载入中...
相关文章
商城相关
相关下载
博客相关
论坛相关
P
L
C



|










|


P
L
C









·最新招聘信息
·最新求职信息
·推荐产品
·推荐厂商
深圳秦合源科技有限公司 
   深圳市秦合源科技有限公司是国内领先的规模较大品种齐全的称重传感器(Loadce......
广州汇巨自动化设备有限公司 
   广州汇巨自动化设备有限公司是一家专业工业自动化产品和自动化设备开发、维修改造、电......
深圳联脉电子有限公司 
   公司自1998年创立以来,一直致力于工业控制产品的研发、制造、销售,目前有机房监......
北京力天昭阳科技发展有限公司 
   北京力天昭阳科技发展有限公司(PekingPowerSkyScience&......
东莞市友诚自动化 
   本公司专业代理台湾永宏、台达PLC、HITECH人机、特价供应文本显示器MD20......
深圳市爱威轮实业有限公司 
   爱威轮实业对广大用户的技术支持与服务,贯穿于与客户接触的每一个环节中,渗透在每一......
·栏目热门排行
·站内热门排行
载入中。。
报告错误·关于我们· 用户帮助· 联系我们 · 友情链接· 本站服务 · 合作伙伴 · 版权声明· 招聘信息 · 投搞指南

迅闻自动化工程部声明如下:
旗下网站:PLC技术网(www.plcjs.com)-可编程控制器技术门户
网站备案号:粤ICP备17165530号
网站法律顾问:ITLAW-庄毅雄律师
法律保护:PLC技术网,迅闻电子,plcjs.com,plcjs.net,plcjs.cn等字样

Copyright 2010-2015. All rights reserved. 

51La