标签:
无标签
先解决上次遗留问题:JSR/SBR/RET三个指令有何区别?
看help里面描述:
The JSR instruction jumps execution to a different routine. The SBR instruction passes data to and executes a routine. The RET instruction returns the results.
从ST来看用法:
Main routine JSR(routine_1,2,value_1,value_2,float_value_1);
Subroutine SBR(value_a,value_b);
<statements>;
RET(float_a);
理解了,Jsr是调用子程序,sbr和ret是定义子程序的接口。试着写一个子程序,发现SBR和RET中的TAG既可以是Controller TAG也可以是Program Tag,但必须提前定义好,这有点麻烦,在project之间如何能复用呢?岂不是每次都要定义一下接口变量的tag???这难道就是以前ab被人说的不好的地方?不过既然如今有了add-on instructions,那么我想sbr指令可以少用点了。
去baidu了下,找sbr的帖子,果然有人问。
http://www.gongkong.com/Forum/ForumTopic.aspx?Id=2008042415271100001
帖子里面有人提到参数调用可以用中间变量来实现???难道是间接寻址??
接下来,不晓得该研究啥问题好了,脑子有点乱,干脆浏览一下logix5000编程手册:
第6章:别名(Alias)的用处:
可以给一个IO设备指定一个有意义的名称(因为IO设备tag由系统自动生成);-实质就是给外部IO变量命名
可以给数组的一个元素提供一个描述名;
第7章:间接地址
竟然是数组???误认为是间接寻址了。再次强调:ab没有地址的概念,只有tag名。
第8章:缓存IO的概念
由于IO数据刷新与程序执行不同步,因此可以在程序开始前copy一下输入信号标签,程序结束后把输出结果去更新实际的输出信号标签。这点类似于西门子默认的过程映象区的概念,很容易理解,只是ab需要自己做一下,而西门子是默认的。反过来说,ab是立即更新io,而西门子则需要指定一下。
第12章:控制器的串口连接ASCII设备
在controller属性里面可以选择串口采用system protocol还是user protocol,后者可以支持Ascii协议。
第15章:故障处理程序,看来类似于西门子的故障ob
第20章,加密程序。需要安装“rslogix5000源保护软件”?
16版本的Rslogix不需要象手册里面说的那样再安装保护软件,而是直接从tools菜单-security-configure source protection,如果系统找不到密码文件(sk.dat)则要先指定一个,加密完成后退出logix5000,然后把sk.dat文件移走就可以。需要解密的话,就需要指定该文件的位置。加密工程,还可以对整个project加密,似乎没有必要吧。
学的有点乱糟糟的,总结一下前面的成果:
1、软件安装,包括rslogix5000、rslinx和rsemulate
2、工程建立后,定义tag,批量导入和导出,中文乱码解决,tag的别名(alias)的用处,tag的scope要注意;
3、task和program的概念,连续和周期task,主program和subroutine,如何定义和调用subroutine(jsr、sbr、ret)
4、16版本新增的add-on instructions如何定义、导出和导入
5、编写了st和fbd的程序进行测试,有了初步映象
6、缓存io的概念和用法
7、cpu串口的设置,可以用来ascii通讯――有待后面仔细研究
8、程序的加密,某个子程序可以加密,整个project也可以加密
下一步,有几个问题要研究一下:
1、把以前在step7里面写的一些模块用ab来重写一次,熟悉一下基本指令的用法。
2、故障处理程序怎么写?
3、在线修改程序的问题
系统分类:
PLC/PAC | 用户分类:
AB | 来源:
原创