文档详情

AB PLC学习笔记.pdf

发布:2017-05-24约1.2万字共23页下载文档
文本预览下载声明
AB PLC 自学笔记 一 以前断断续续的学了一点,但大多是三天打鱼两天晒网;也参加了一 次培训,但是短短的课程、大量的产品介绍和难得的上机实验,很快 就忘记了学了点啥。翻开以前的学习记录,零散而杂乱,不少要点看 上去是那么陌生。也罢,再来一次打鱼又如何? 第一步,安装软件。 手上有去年培训的时候从老师那里搞来的 16版本的logix5000,以 前也安装过,里面有很好的英文语音教学,当时老师开玩笑说,可以 锻炼下听力。安装完logix5000 V16,再安装一个模拟器软件: Emulate,安装过程中告诉我需要rslinx,昏,看来安装次序错鸟。 其实在安装logix5000的过程中,最后一些小工具的安装也提示我需 要rslinx 的,被我忽略了。于是安装rslinx,再安装emulate。最 后一步,把网上找来的授权导入。发现用老版授权的话,软件第一次 运行会提示你,现在16版本采用所谓的factorytalk管理授权了云 云,我不管,反正能用就行。 接下来的问题就是,怎么用这个模拟器?以前用过,但是忘鸟。只记 得要选择一个特殊的硬件,还好有份模拟器的使用手册,简单看了下 几个插图就回忆起来了,试了下,ok。个人觉得ab的emulate有点 别扭,因为用惯了西门子的plcsim,那个不需要选择什么特殊的硬 件,原工程就可以很仿真的download下去去模拟运行。而ab的东东, 却不能用真正的硬件配置,那么一个实际个工程文件必须修改下 controller才能去仿真了??? 万事具备,就开始学习软件吧,从何入手呢?先找几个自己感兴趣的 问题研究研究吧。先看看变量的定义,ab的独特之处就包括tag是 以名称作为关键“索引”,没有西门子那种地址的概念,这样当然简 化了开发。那么如何批量的导入/导出变量呢?我用s7的编程习惯是 在excel里面编辑好变量表,再导入到程序里面。在logix5k软件里 面找了下,果然可以,tools菜单下有import和export,试了下, 跟西门子的symboltable一样,都是以csv文件保存的,不过也发 现了中文注释偶尔会变 “乱码”。记得看过讲关于如何解决ab导出 变量表的中文乱码问题,找了下这篇文章,原来乱码其实是unicode 码,作者编了个vb小程序,当然也可以在excel里面编写个vba代 码,或者有人说用某网页的内码转换去解决也可以。(啥时候看看 vba 的书?) 接下来再看看16版本新增的add-oninstructions,以前粗粗的研 究了下,记得是可以编写自己的模块在各个工程间重复使用。于是决 定用st编写一个max3 函数,就是在三个real数据中找一个最大的。 先定义接口变量,ab是在对话框里面定义,不象西门子的scl是完 全手工输入变量定义。模块写好以后check没有error,然后在main program 中调用,check一下却总是报错。弄了半天,才回忆起来以 前碰到过这个事情,应该再定义一个类型为该模块的结构变量,调用 模块时填这个结构变量名就行了。然而这样的话,如果要把某个外部 io变量或者某个内部变量单独给模块的一个输入端,岂不是要先赋 值给这个结构变量的其中一个?太麻烦了吧,也不合情理啊。再看看 接口变量的定义,发现有req属性,看看help里面的描述,再测试 了下,原来关键就在于req是否勾上了。勾上req 以后,就可以用单 独的一个tag去填到这个参数去了。下一步就是模块如何在工程之间 复用呢?也很简单了,可以导入/导出成一个xml格式的文件,甚至 可以用ie打开,毕竟是标准的xml格式嘛。 最后一个问题,是program 的理解。以前做的笔记里面,写了默认每 个task下面的第一个program是循环执行的,其余program是被调 用的,测试下,果然如此。试着去修改program 的属性,图标上面有 个 “1”就表示了该program是被执行的。碰到了调用program 的问 题,我找了jsr指令,ms一共有三种指令:jsr、sbr和ret,下次 再研究吧。 ok,今天到此为止。 二 先解决上次遗留问题:JSR/SBR/RET三个指令有何区别? 看help里面描述: TheJSRinstructionjumpsexecutiontoadifferentroutine.The SBRinstructionpassesdatatoandexecutesaroutine.TheRET instructionreturnstheresults. 从ST来看用法: Mai
显示全部
相似文档