及固高控制器应用知识OtoStudio是一种功能强大的软PLC软件编程工具,它遵循国际电工协会IEC61131-3标准,同时其可以采用IL、ST、FBD、LD、CFC、SFC六种编程语言进行开发,用户可以在同一项目中选择不同的语言编辑子程序,功能模块等。软件编程分成两个部分:1.控制进程的编程;2.可视化界面的编辑;它是一款高效、简便的开发工具,并为众多知名的控制器公司所采用。而对于固高控制器而言,常用的编程语言有LD、ST、SFC三种。其他几种仅做为了解即可。符合欧洲标准的梯形图编辑器一种图形化的顺序控制编程方式类似PASCAL高级语言的编程语言我们在项目开发时不会经常使用这三种语言,在这里只是简单的介绍一下:IL是LD梯形图模式的文本化的语言CFC是一种类似逻辑电路原理图的编程方式FBD是多个CFC的顺序控制编程相关的编程语法知识参见书籍:《IEC61131-3编程语言及应用基础》Bool型变量,只有False否和True是两种状态;INT整数型变量,DINT长整数型变量,其他还有SINT,USINT,UINT,UDINT等类型;REAL浮点型变量,LREAL长浮点型变量就是带小数的变量;WORD、DWORD型变量,类似UDINT整数型变量,不能有负数,其中DWORD常用于指针;BYTE变量,同时也可以做为字符变量;STRING字符串变量;ARRAY数组类型;POINTER指针类型,这个会经常用到;STRUCT数据结构定义变量类型,这个会经常用到;全局变量,整个工程都可以引用,需要在在工程的全局变量管理器内编辑,我们常用来PRG之间的通信联络;局部变量,只能用于PRG内使用(不包含函数和功能块内部的变量),不能被其它PRG和功能块、函数引用;函数和功能块的参变量,包括VAR_INPUT输入型变量,VAR_OUTPUT输出型变量(函数和功能块方法不一样),VAR内部使用型变量只能在功能块和函数本身调用。CONSTANT类型,常数的值不可改变,但这种类型不常用。函数FUN的概念与PASCAL高级语言的概念一致,包含函数名、参数以及返回值。功能块FB的概念比较特殊:有点类似C++语言里面的类的概念,可以被定义成多个副本,而不会出现互相干扰,运行中可以保持其内部变量值不变。相对而言功能块FB在我们开发的控制工程里运用的比较多。一个工程就是由多个PRG组成,简单的理解就是有多个程序在同时运行。PRG是并行运行的。每个PRG可以负责不同的任务。优点:简化编程难度,优化软件工程的结构,有利于大家解读。全局变量是联接各个PRG之间的纽带。OtoStudio界面开发提供的控件数量不多;常用的控件包括:◦文本框◦按钮◦可视化◦位图重点需要掌握的是如何将控件的属性、点击事件触发相关的内容和程序里面的变量进行关联。变量部分终点掌握:•不可见;•取消输入;•改变颜色;输入设置终点掌握:•触发但不保持变量;•页面转移;•文本显示变量输入;刚建立工程时,只有一个标准库Standard被自动调入。除了自己编写函数和功能块以外,OtoStudio还为我们提供了很多的函数和功能块,它们被封装到多个LIB库里供我们调用。需要的时候可以通过库管理功能,将需要的函数和功能块所在的库调入工程里。也可以将我们自己编写的函数和功能块封装成库,供以后的工程调用。相关的库文件说明在OtoStudio的安装目录下有相关的文档说明屏幕上添加一个圆灯和一个按钮,当按钮按下后圆灯可以一亮一灭的闪动。要求:◦点亮、熄灭时间各为1秒。◦编程方式采用LD方式;OtoStudio的编程入门从LD语言开始;首先认识LD语言常用的组成元素;◦触点◦线圈◦上升沿、下降沿◦定时器◦双稳态保持做为控制系统常用的语句构成,以及作用;◦直连——一般用在IO测试或简单控制上◦自锁、互锁——状态切换、功能切换、运动功能控制◦双稳态电路——IO或系统状态保持和复位线圈:普通线圈、置位线圈、复位线圈,同样必须是Bool型变量或WORD、INT、BYTE型的变量位。触点:分成常开、常闭两类,变量名必须是Bool型变量或WORD、INT、BYTE型变量的位。定时器上升沿、下降沿计数器双稳态逻辑运算和数学运算(相关的运算符查看帮助资料)互锁常用在:工作状态模式切换、功能切换;自锁常用在:有时间延续的功能启动上;双稳态常用在:IO或系统状态保持和复位;以上三种形式构成LD编程的基础形态。功能切换:•按下右边方格时,左边绿色小灯会变亮;•选中一个功能时,其他功能的灯会灭掉;•形成六种功能的互锁逻辑电路;ST语言虽然有高级语言的灵活性强优点,但缺点是可读性差。一般情况下不用来做主程序的框架,而是用来开发功能块和函数(包括SFC语言的功能块)。在用ST开发功能模块时尽可能的不用循环语句,常用语句就是IF..THEN和CASE..OF语句。这样可以保证程序执行时流畅不会卡死。注意LREAL型变量的赋值数必须加小数点。如:Val:=12.0;要注意在ST语言开发功能块中,上升沿和下降沿、以及定时器功能块的用法,否则运行中产生难以理解的错误。这里面有两种处理方法:1)将这些语句放在功能块的最外层。不要这些这些语句放在IF、CASE或循环语句里面。2)可以在下一个执行条件里放置一个输入条件为FALSE的复位语句。注意功能块的特点。在OtoStudio程序运行的时候,功能块的里面变量的数值是始终保持的,不会因为没有执行该功能块,数值变为零。如果在LD程序里,使用不带En的功能块时,那么不管前面的逻辑是否为TRUE,这个功能块的内部始终会被执行。如果想控制功能块里面的能否执行可以通过在功能块第一个输入变量自行添加Enable参数加以控制,或者使用带有En的方式添加功能块,如下图所示:以不带En的方式添加功能块以带En的方式添加功能块特点是动作流程清晰,流程顺序一目了然。基本上用于PRG并行顺序动作的编程用来编写动作流程较长的控制功能,比如自动运行的主循环过程、或者机械手上下料的过程动作。只能用来开发单一流程的动作,不建议用它来编写并行的动作流程(如果有并行的顺序动作功能,建议采用两个PRG程序来实现)。每一个STEP都相当于功能块,每个程序扫描周期只会执行一个STEP每一个STEP有一个进入动作,进入前只执行一次每一个STEP有一个退出动作,在离开扫描离开时只执行一次基本上以逻辑判断为主;将一些比较复杂的并且执行时间较长需要等待的控制模块,集中放在另一个PRG内,这里只做启动信号和判断是否结束。要有退出机制;在有等待状态信号才能向下执行的STEP里,要有退出机制。通过报警信息,防止等不到信号整个流程始终停留在这个STEP里无法复位。一旦有错误产生,或者长时间无反应,就会通过报警变量直接退出返回顶层同样编写一个走马灯的小程序,让屏幕上的8个圆点按照数字循序,依次循环点亮后熄灭;每次只能有一个灯亮。要求:◦点亮时间为1秒。◦编程方式采用SFC方式;常用的编程语言就是三种:LD语言、ST语言、SFC语言;LD语言的基础构成就三种形态:直通、自锁互锁、双稳态;ST语言主要用于功能块、函数和SFC里的STEP模块逻辑编程;SFC主要用于顺序动作较长的逻辑控制;另外三种语言很少用到,这里就不再介绍;一个控制软件需要些什么?核心是自动加工工艺手动控制功能产品信息管理程序管理编辑辅助动作功能设备调试修正报警监控功能人机界面管理自动运行要完成的功能。到螺丝排列机构取螺丝电动螺丝刀负责取螺丝、固定螺丝工件工件上需要固定的螺丝位置列表1.X20.0Y20.02.X…….Y……3.X…….Y……4.X…….Y……5.X…….Y……6.X…….Y……还需要常规的手功能,用以测试调整需要一个代码试教、编辑功能需要多种工艺参数支持;工件坐标偏置设定(最基本的功能):常见的是数控机床的G54~G59就是工件偏置,包括设定、修改、保存。辅助设备的参数设定,比如机械上下料装置的调整参数,加工的定位,间距,速度、偏移修正。加工工艺相关的:机床不同各不相同,电压、温度、PID参数、延时。设备需要诊断是否正常针对不同的设备需要调整相关系统参数有一个文件管理操作部分的功能文件操作部分,包括浏览、复制、删除、拷贝等等常用功能;文件编辑功能;代码生成部分(也就是将一部分CAD\CAM的功能搬到控制器上);系统参数文件的读写,例如:轴参数、系统参数、工艺参数文件的读写等等;系统文件的参数修改,修改完成后及时保存或者取消时恢复原值、以及控制器的刷新等;报警功能,产生报警及复位报警报警的种类系统报警:只有重新开机才能消除;停止运行:正在运行时立即停止,基本以安全措施为主;禁止运行:禁止运动模块运行,基本以安全措施为主;警告报警:屏幕上会有警告提示;紧急停止的处理(极为重要),人工干预要求机床立即停止。比如:输入程序坐标有误时紧急停止,或工件型号不对。系统报警时的自行紧急停止,比如:有轴故障可以令其他轴停止。操作对人员或设备的安全保护,比如:运动的部件活动区域感应到有其他物体,机床电气舱门被打开等等。禁止自动运行的逻辑。这些思想始终贯穿自动流程。开发控制系统并不是让机器简单的完成一个顺序动作就算大功告成。品质要求:根据不同的设备对品质的要求并不相同,其中的产生不良品因素很多,但要保证不是由于控制系统的因素做成的。效率要求:另一个考核控制器是否达标的另一个重要指标,简单的理解就是在保证品质的情况下,控制器速度是否够快。面面俱到,需要考虑应用的方便。非常繁琐,不复杂但是内容很多。工作量大,模块相对都比较独立。总而言之:与自动部分编程地位同样重要,因为两者的配合是密不可分的。人机安全产品品质加工效率功能齐备设计时优先考虑开发过程重点修改次数最多•软件规划•软件编程•软件调试完成功能•产品品质•加工效率•功能完善调试性能•软件维护•客户资料交接•开发文档整理后期收尾了解设备的技术要求意义了解同行业的技术水平了解国际上先进的水平了解目前技术发展动向能够成为行业的专家以上是对控制系统的初步认识,了解一台机床所需要的是什么样功能才能做为工程交付到客户手中的控制器,需要些什么符合客户的要求。接下来描述的是为了完成以上的功能,我们应该如何去做,也就是按照我们以往的经验总结的软件架构去快速搭建软件。1.逻辑的控制(不包含运动控制);2.运动的控制(就是实际控制运动控制卡完成动作的模块集合);3.流程的控制(需要一定时间、顺序,按照一定的步骤进行的监控、控制);4.信号转换的操作,比如:IO信号转换成程序的变量,编码器坐标值转换成毫米单位数值等;5.特殊的需要:设备上电初始化、报警处理等;HMI_PRG人机界面交互部分PLC_PRG控制逻辑部分MOTION_PRG运动控制PROCESS_PRG自动运行STATUS_PRG状态监控INIT_PRG初始化部分ALARM_PRG报警部分全局变量完成动作协同分工明确每个部分的任务针对同一类事情;容易理解便于快速检索,快速找到需要的内容;便于切分便于团队合作,能够团队成员分摊快速完成;全局变量是联络各个PRG进程的关键要素STS控制状态信息变量HMI来自人机界面的控制信号,或返回状态PRM系统参数变量FILE系统参数文件名变量DIIO输入变量名DOIO输出变量名AUT自动进程专用交互变量名ALM产生的报警变量系统状态的切换及互锁(手动、自动)手动状态下的功能之间切换及互锁手动状态下各种功能启动命令触发、复位自动状态下命令动作的切换:启动、暂停、终止和完成后的复位逻辑系统状态的初始状态信号其他的界面或按钮操作系统状态(手动、自动)的切换及互锁来自界面的切换命令用来控制系统当前状态的全局变量防止在机床工作时就进行切换安全措施,只有在空闲时才可以手动状态下的功能之间切换及互锁多了手动状态限制手动状态下功能命令的启动、自动复位启动按钮信号