罗克韦尔(AB)PLC讲解,创建一个新的“Add On指令”
创建一个新的指令的工作流程包括:
• 预先设计或技术规格-一个小计划将促使长久的发展。
• 创建指令框架-选择指令逻辑的语言,预/后扫描行为,版本选择等等。
• 指令的固定标签结构-参数与本地标签。很显然,此处做的选择在不同语言环境下会影响外观、条件和验证要求。
在本次实验中,创建一个常规目的指令来模拟一个带有变量滞后和时间常数的连续过程(适用于一阶滞后)。
输入为: 信号输入(浮点型,固有单位) 滞后时间(浮点型,秒)
时间常数(浮点型,秒)
输出为: 信号输出(浮点型,固有单位)
1、在下拉菜单中,右键单击‘Add-On Instructions’文件夹,然后选择‘
New Add-On Instruction …’。2. 完成所示的Add-On 指令对话框。
值得注意的是一个Add-On指令能够用以下任何一种语言来编写:梯形图、功能块或结构化文本。
3. 单击
OK 完成。4. 许多新条目出现在控制器项目管理器中。
5. 右击新创建的Add-On指令:‘Simulation_DT_1st ’,然后在下拉菜单中选择‘Open Definition ’。
6.现在‘Add-On Instruction Definition’编辑器应该可以使用。
• ‘General’选项卡包括所有在指令创建时首先要输入的条目。
• 以‘Revision Note’为形式的版本信息,其形式自由并且能由用户单独更新和强制,没有版本自动跟踪机制。
• 窗口底部有许多用户经常使用的条目。‘Logic’按键可以立即打开该指令的逻辑例程。
• ‘Data Type Size’记录了指令数据所使用的内存数量(以字节为单位)。
7. 单击参数选项卡,查看指令中的参数。
通过任务的详述说明,以下为我们所知一定包含在定义中的参数。
每个Add-On指令中‘EnableIn’和‘EnableOut’参数是预先确定而且为缺省值。‘EnableIn’由每种语言环境的特定因素决定,而且可以被用作特殊功能。这是一个高级主题,超出了本实验范围。‘EnableOut’通常与‘EnableIn’的状态保持一致,但是也可以由用户编程控制参数。
‘Parameters’选项卡是与该Add-On指令相关的标签数据库编辑器窗口,并包括一些已定义的特定字段:Usage、Alias For 、Default、Style 、Req、Vis、Description、External Access、Constant。
‘Usage’允许用户指定参数为: ‘Input’指令的输入参数(支持基本数据类型) ‘Output’ 指令的输出参数(支持基本数据类型)
‘InOut’通过‘按参考方式’传递到指令的参数(任何数据类型包括用户自定义结构类型、数组等等)
‘Alias For’ 允许用户将该参数定义为本AOI的某local tag(或其下一级tag)的别名参数。可以通过下拉菜单进行选择。只有‘Input’和‘Output’类型的参数才可定义别名。
‘Default’允许用户为相关参数指定缺省值。这个数值是指令首次创建时指令调用实例标签的参数值。‘Style’设定参数的显示格式,如二进制、八进制、十进制、十六进制、日期/时间、指数、浮点数。
‘Req’-当在例程中使用指令实例时,点选‘Required’复选框的参数将强制用户输入一个标签或者对这个参数进行一个功能块连接。该修改符定义了本编程语言的校验行为。缺省情况下,‘Required’参数也是‘Visible’的。
‘Vis’-当在例程中使用指令时,点选‘Visible’复选框的参数将可见。因为修改符的使用,导致了一些取决于指令示例中使用的数据类型和语言(LD、FB、ST)的结果不同。
‘Description’字段很重要,因为在此处使用的任何信息都将会‘传递’到用户程序的任何一个指令实例中。这种‘自身文档’可用于描述指令的使用情况、单位等等。不超过512个字符。
‘External Access’设定外部设备(如人机界面)访问该参数的权限。有三种不同的权限:Read/Write(可读写)、Read Only(只读)、None(不可访问)。
‘Constant’设置该参数是否为常数。如果选择了该项,则可避免参数值被AOI外部逻辑修改,但AOI内部逻辑可以修改该参数值。
用户可以隐藏或显示某列,(在该列标题行点击鼠标右键,根据出现的菜单操作)。
8.从任务规范中可以看出,下列是必须包含在定义中的参数: 输入:
• Name:SimInput
• Usage:输入参数
• Data Type:实型
• Default:0.0
• Required*(选择)
• Visible(选择)
• Description:仿真输入
• External Access:读/写
* 这个参数是‘Required’,因为仿真必须要有输入。默认情况下,‘Visible’随‘Required’变化而变化。另外,External Access设为读/写,这意味着外部设备(如人机界面)可以读且可以改写该参数。
• Name:SimDeadtime
• Usage:输入参数
• Data Type:实型
• Default:0.0
• Not Required* (不选择)
• Not Visible (不选择)
• Description: 停滞秒数
• External Access:读/写
* 这个参数被认为是可选参数并且默认情况为不是‘Required’或‘Visible’,但是仍然可以访问或者被用户操控。
• Name: SimTimeConstant
• Usage:输入参数
• Data Type : 实型
• Default:1.0
• Not Required* (不选择)
• Visible (选择)
• Description:时间常数(秒)
• External Access:读/写
* 这个参数被认为是可选参数并且为不是‘Required’,但是为了用户输入它应该为‘Visible’。
此指令的输出:
• Name:SimOutput
• Usage:输出参数
• Data Type: 实型
• Default:0.0
• Not Required (不选择)
• Visible* (选择)
• Description:仿真输出
• External Access:只读
* * 对于用户连接来说,输出应该为‘Visible’,但是不选择‘Required’(它可以直接通过标签数据库访问)。另外,External Access设为只读,这意味着外部设备(如人机界面)只能读该参数,而无法更改该参数值。如果External Access设为‘None’,则外部设备看不到该参数。
9. 在定义参数表中输入这些参数和规范。
‘Signature’选项卡允许用户设置对AOI进行封装和签名,以防他人更改。该选项卡还显示签名历史记录。
10. 单击Apply 完成修改。
11.单击一次Logic 按键打开空白的功能块例程(这是控制器项目管理器的Add-On指令文件夹中命名为‘Logic’ 的例程)。
Add-On指令中的‘Logic’例程与其他语言类型的例程一样,只是功能块额外在右上角(更多在其后)带有‘Data Context’下拉菜单。
在‘Logic’中编写逻辑遵循相同规则和约定,就好像在控制器中的任何地方编写一个标准例程。
该指令的仿真逻辑会包括FB DeadTime Block(DEDT)和一个FB LeadLag Block(LDLG)
12. 将DEDT和LDLG功能块加入到这页上。
结果如下:
13. 双击DEDT 功能块上的问号然后输入DA1 ,点Enter 完成。
14. 右击‘DA1 ’,然后从下拉菜单中选择‘New Parameter ‘DA1 ’…’。
15. 完成‘Parameter/Local Tag Prosperities ’对话框如下:
16. 单击OK 完成。
‘InOut ’是为指令指定该数据‘按参考方式’进行传递。这就等同于将‘数据的指针’传到指令,代替传递‘数据的数值’。这是使用数组、预定义结构体或UDT作为Add-On指令输入的合适方式。‘InOut ’参数将在‘使用新的指令’部分进一步讨论。
17.打开DEDT的属性,选择‘Parameters’选项卡显示DEDT功能块的‘Dead Time’输入参数和‘DeadtimeInv’ 输出参数并‘点选’那些参数的可见性。
18. 单击Apply 和OK 完成修改。
19.打开LDLG功能块的属性,显示‘Lag’参数,然后‘点选’参数的可见性。
20. 单击Apply 和OK 完成更改。
21. 在此页上放置3个输入参考(IREF)。
22. 连接如下:
• DEDT.In
• DEDT.Deadtime
• LDLG..Lag
显示如下:
23. 将DEDT.Out连接到LDLG..In
24. 双击第一个IREF然后输入‘SimInput ’,既可以直接键入,也可以下拉选择标签。
25. 重复先前步骤,将输入参数‘SimDeadtime ’放置到第二个IREF。
26.再次重复,将输入参数‘SimTimeConstant ’放置到第三个IREF。逻辑应该如下所示:
27. 在此页上放置一个输出参考(OREF)。
28. 将它连到LDLG..Out上
29. 双击输出参考(OREF),然后键入‘SimOutput’(输出参数是以前定义的)。
考虑到FB滞后时间功能块(DEDT)的特性,输入的定时/延时时间值很可能使得100个元素数组不够用,所以,比较适合的做法是,把相关的错误信息位(DEDT_01.DeadtimeInv)作为一个输出参数,这样就能够在指令外部监视此错误状况。
30. 在本页上放置另一个输出参考(OREF)并将其连到DEDT.DeadtimeInv上。
31. 双击一个新的输出参考(OREF)然后键入‘SimDTInv’。单击Enter 接受。
32. 右击‘SimDTInv’,然后从下拉菜单中选择‘New Parameter‘SimDTInv…’。
33. 完成的‘New Parameter’对话框显示如下:
34.单击OK 完成。
通过这种方式,可以在逻辑编辑器中创建新参数,这与在定义参数中创建它们一样容易。逻辑定义应该如下所示:
35. 关闭‘Logic’例程。
36. 如果在屏幕上还没有存在,右击控制器项目管理器中的Add-On指令 ‘Simulation_DT_1st’,打开AOI定义,然后从下拉菜单中选择‘Open Definition’。
37. 单击Parameters 选项卡查看指令中的参数。
38.单击Local Tags 选项卡:
确切地说,Local Tags是指令自己本身使用的标签,而不是用户使用的标签。因此,当指令在例程中使用时,这些Local Tags标签在数据结构中是不可见的。典型的使用是作为AOI的内部标签或者作为一些操作的中间变量使用。这些标签只在指令内部可见。
注意,功能块标签创建时默认为Local Tags。通常,支持标签(backing tag)不作为参数来使用,而作为内部标签。这对于任何一个包含标签结构的指令都是适用的,如:定时器、计数器、功能块、嵌套的AOI等等。
使用内部的指令帮助文件
1. 单击Help 选项卡:
‘Help ’选项卡包含了指令帮助预览,它由用户提供的信息自动产生等。
2. 下拉滚动条找到‘Available Languages’部分。
这部分显示了每种可用的语言(RLL、FB和ST)中指令的默认外观。
3. 继续下拉滚动条,可见显示所有指令参数、用法、类型和修改符的表格。
再下面是可选的‘Extended Description’,它是在选项卡最顶部‘Extended Description’字段中由用户定义的更详细的使用说明,以及指令修改的历史记录。修改的历史记录会跟踪上次编辑日期以及指令的创建时间。
这就是当访问RSLogix5000指令帮助时,指令‘Help’的显示外观。
4. 关闭AOI定义编辑器窗口。
5.校验整个控制器程序。
应该校验控制器程序保证没有任何问题。如果接收到一个错误,询问指导教师查出项目哪里出错了。
目前为止,我们已经开始了一个新的RSLogix 5000工程并创建了一个Add-On指令,键入了必须的参数和将执行的逻辑。我们还没有真正地使用它。这即将在下一步。
使用新的指令
新的指令可以在梯形图逻辑、功能块或结构化文本语言(包括SFC Action中的结构化文本语言)中使用。指令的可见性遵循所处环境。在‘Parameter’定义中的参数属性中选择每种语言的输入、校验和可见性行为。
以前在功能块语言中创建的Add-On指令能够使用在任何标准指令编辑器中。
指令工具栏有一个‘Add-On’选项卡,上面列写了全部的当前程序中可利用的Add-On指令。
梯形图逻辑实例
1. 打开‘MainTask ’中‘MainProgram ’的‘MainRoutine ’(默认情况下,这是一个梯形图逻辑例程)。
2. 在一个空的梯级上单击指令工具栏上Add-On选项卡中的Simulation按键,放置一个‘Simulation_DT_1st’指令。
后面带一个问号(?)的参数需要键入一个标签名。如下:
• Simulation_DT_1st
类型为‘Simulation_DT_1st’的标签作为这个指令中不可重名的数据实例。这个非常像TON指令中提及的定时器结构体。
• SimInput 需要一个实型标签作为输入参数。
• DA1 需要一个实型数组暂存中间数据,数组至少有100个元素。
后面带有双问号(??)的参数填写的是标签值。这些字段显示那些参数的当前值。
3.双击第一个问号(?),然后键入‘LDsim1 ’作为指令的参数。单击Enter 完成。
4. 右击 ‘LDsim1’ 条目,然后选择‘New“LDsim1”…’。
5. 完成‘New Tag’对话框如下。
6. 单击【OK】完成。
7. 在指令中键入另外两个标签并创建它们。
SimInput
• Name: RealValue1
• Type:Base
• Data Type: 实型
• Scope:MainProgram
DA1
• Name:deadarray1
• Type:Base
• Data Type:实型[100]
• Scope: MainProgram
8.校验RLL例程:
RLL例程如下:
9. 回顾之前指令定义中创建的参数选项卡信息如下:
‘Visible’参数值显示在指令上。‘InOut’例外。
在梯形图逻辑中,一个布尔型的输出参数指定为‘Visible’(而不是‘Required’)在指令上会表现为‘位类型’引脚。这与‘SimDTInv’输出参数的例子一样。
‘Required’参数需要用户在指令校验前键入一个符合这个参数的正确标签变量。
?考虑‘SimDeadTime’参数。利用以下的RLL MOV指令(或一些相似一个数值。
10.单击属性按钮 ,查看指令的参数。
在这里
注意RLL指令中的可见性不能改变时,‘Visibility’列不起作用。
* 在指令定义中作为‘本地标签’创建的标签在哪?
11.按以下信息修改‘SimDeadtime ’和‘SimTimeConstant ’参数值:
12.单击Apply 和OK 完成更改
功能块实例
1. 在‘MainProgram’下创建一个名为‘FB1’功能块例程。
2. 打开‘FB1’功能块例程,显示例程编程域。
3. 单击Logix5000工具栏上的Add-On选项卡,在功能块编程域内放置一个‘Simulation_DT_1st ’指令。
与参数相关的引脚已经在指令定义中指定为‘Visible’,默认情况下在指令中可见。
指令的数据标签‘Simulation_DT_1st_01’已经创建完成。这与任何一个在功能块语言环境下创建的指令一致。
4。 双击DA1对应的问号(?)并键入‘deadarray2’。按Enter完成。
5.右击刚才创建的 ‘deadarray2 ’ 条目,然后选择‘New “deadarray2”…’
6. 完成‘New Tag ’对话框如下,注意Data Type 。
7. 单击OK 完成。
8.此时校验例程。
9. 注意报告的错误信息:
在指令定义中,‘SimInput’指定为‘Required’参数。在功能块语言环境下,同样要求连接另一个功能块。观察‘SimInput’参数的引脚。
输入引脚末端的‘结点’指示该参数需要连接到其他功能块。直到所有的‘required’参数都有连接(要求的输入和输出类似),该指令才会校验无误。
10. 在页面上放置一个输入参考(IREF),然后将它与‘SimInput ’连接在一起。
11. 双击IREF,然后键入RealValue1 (这个输入标签与在RLL部分使用过的标签一样)。按Enter 完成。
12.校验例程(这时例程应该显示无误)。
13.单击属性按钮,显示指令参数。
注意‘Visible’列生效。这个适合功能块语言环境,在此环境下,可以增加可选参数的功能性。
14. 按以下信息修改‘SimDeadtime’和‘SimTimeConstant’参数的值。
15.单击Apply 和OK 完成更改。
结构化文本实例
1. 在‘MainProgram’下创建一个新的名为‘ST1’的结构化文本例程。
2. 打开‘ST1’结构化文本例程显示编程域。
3. 从指令工具栏、插入/选择或只是简单的键入, 添加一个‘Simulation_DT_1st’指令。
工具提示框显示了指令中所必需的参数,以实现校验无误。注意只有指令的支持标签(backing tag)和在定义中指定为‘Required’的参数是唯一在结构化文本执行过程中出现的。
4. 右击‘Simulation_DT_1st’,然后从下拉菜单中选择‘Argument List…’。
5. 按如下变量完成‘Argument List’。
6.单击Apply和OK完成更改。
7.完成带有如下标签的结构化文本指令。在标签上右击,然后选择‘NewTag’创建标签。
• Name: stsim1
• Type: 基本型
• Data Type:Simulation_DT_1st
• Scope:MainProgram
• Name: RealValue1 *‘RealValue1’ 已经存在了。
• Type: Base
• Data Type:实型
• Scope:MainProgram
• Name: deadarray3
• Type:Base
• Data Type:实型[100]
• Scope:MainProgram
* 在每行的末端使用分号终止结构化文本。
若要直接修改支持标签(backing tag)值,则必须通过指令属性或标签数据库视图完成。
8.校验ST例程。
9. 右击指令,然后在下拉菜单中选择‘Prosperities’。
10. 在指令属性选项卡中,修改‘SimDeadtime’和‘SimTimeConstant’的参数如下:
11. 单击Apply 和OK 完成更改。
正如上三部分所示,在Add-On指令设计阶段,参数的Visible 和Required 修改符的使用必须要考虑在其中。语言类型应该总在考虑范围之内。
AB系列PLC程序远程上下载、调试方法
AB(Allen-Bradely)是罗克韦尔(ROCKWELL)集团下专门研发和生产PLC的公司,在PLC领域已经有几十年的历史,是世界上资历最深的PLC供应商之一。AB的PLC产品以涉及面广、通讯能力强、功能强大而著称。产品有以下几个系列:Micrologix、Flexlogix、SLC500系列、CompactLogix系列(使用RSLogix5000编程软件)、ControLogix系列。
AB的EtherNet/IP是一种开放的工业网络标准,支持隐式和显示的信息通讯,使用商业、现成的EtherNet设备和物理介质。
随着网络通讯的发展, PLC程序远程上下载、调试的技术已经非常成熟和稳定,该技术能帮助工程师远程进行设备维护,排除故障,使工程师不在忙于路途来回奔波,极大缩短了排故时间,提升了生产效率。下面我们介绍如何实现AB系列PLC程序远程上下载、调试方法。
一、完成AB系列PLC程序远程上下载、调试需要的硬件、软件
1、可以运行Rockwell Software、GVCOM3的软件并能上网的电脑一台。
2、AB的PLC一台
3、巨控GRM500远程控制终端一台
AB的PLC通过网线连接GRM500网口,GRM530通过4G、有线或者wifi任意一种方式上网。
二、完成AB系列PLC程序远程上下载、调试需要的硬件、软件
1、Rockwell Software软件一套;
2、巨控GVCOM3软件;
三、AB系列PLC程序远程上下载、调试方法
1、电脑上运行GVCOM3软件,点击下面的“新建模块”,输入GRM500模块11位序号和密码。
2 点击“下一步”,因为AB系列 PLC的编程口是通过GRM的网口连接,直接点下一步,多点几次,直到出现网口通道。
网口名称:选择安装好的虚拟网口 TAP-WIN32 Adapter V9,如果没有,点下拉框自动新建即可。
网口IP:该IP只要求和你远程PLC 的IP一个网段,并且和其同网段的设备不冲突即可。如上图,和网口连接的远程PLC地址为192.168.2.142,网口IP随便设置为该网段的一个IP,和这些PLC不冲突即可。
子网掩码:255.255.255.0。
网口连接设备的IP地址段:也就是你要远程下载PLC的IP(可以是一个IP,如果有多个PLC,也可以是一个IP段)
设置好后点击完成,回到GVCOM3的运行界面
3、点击GVCOM3
,出现如下图所示“模块已连接”时表示可以远程下载AB的PLC。
4、 AB的RSLinx Classic软件,打开Configure Drivers对话框,如下图所示,选择“Ethernet/IP Driver”,点击“Add New…
5、点击OK。点击“Configure…”,选择模块网口通道使用的网卡适配器TAP-WIN32 Adapter V9,点击“确定”。
6、在AB的RSLinx Classic软件中找到AB系列PLC后即可上传、下载程序
不仅可以流畅的下载调试各种主流PLC(西门子,三菱,欧姆龙,AB,施耐德,台达等),即使对于文件比较大的触摸屏工程(步科,威纶,昆仑,西门子触屏, 南大傲拓触屏,,三菱GS系列触摸屏 ,Proface 触摸屏 ),要求响应速度的运动控制器,伺服(西门子G120变频器 安川运动控制器),巨控模块依然可以轻松应对,流畅下载,遥遥领先的技术得益于巨控科技多年来投入大量精力和设备实际测试和积累。
作者:工控小周 任职广州巨控产品经理
相关问答
ABPLC编程软件程序肿么添加标题注解-ZOL问答
苹果手机开机屏幕上出现iPhoneisdisabled怎么办1612浏览0回答为什么我的手机照片不相册里看不到ABG30浏览0回答手机上方突然出现红色AB样图标是怎么...
mcgs触摸屏怎么与ABPLC连?
需要以下步骤:1.在MCGS软件中打开PLC连接界面,选择PLC类型和连接方式。通常可以选择串口或者以太网连接。2.在连接界面中输入PLC的IP地址或者串口参数等连...
请教高手如何实现西门子PLC与ABPLC之间的通讯?
当然是MODBUS通讯了;首先看你怎么去定义主站与从站;如果你定义的是西门子为从站站那么你就得知道每一位置的MODBUS地址西门子的手册上应该是有的自己去看如果...
abplc的三种运行模式?
plc运行主要有以下三种模式:点击“运行”按钮,进入RUN(运行)模式,或点击“停止”按钮,进入STOP(停止)模式;选择PLC(PLC)>运行(RUN)菜单命令...PLC操...
abplc更换cpu怎么配置?
更换ABPLC的CPU后,需要重新配置CPU以确保PLC能够正常工作。以下是一些常见的配置步骤:1.确定新CPU的型号和规格,以及PLC的型号和版本。这将有助于确定所需的...
三菱plcFX1N,怎么编程编码器的ab相,实现长度定位?
使用高速计数器C251,实现AB相控制,X0和X1分别接在编码器的A相和B相。C251数值可以写K999999,没有关系的。C251的当前值和你的定位数值做区间比较,需要用到的...
ABPLC与SIEMENSPLC编程软件怎么安装在同一台笔记本电脑上...
楼上回复的还是比较全的,首先电脑里一定要有编程软件,而且不懂你们公司为什么用...正解是:西门子S7-200PLC485通讯协议,而非232,。解决办法就是搞一个232转485...
abplc怎么改cpu的ip地址?
要更改ABPLC的IP地址,您需要执行以下步骤:1.首先,您需要连接到PLC的网络。您可以使用适当的网络线缆将计算机连接到PLC。2.打开RSLogix5000软件并选择您...
abplc扩展模块作用?
plc拓展模块的作用如下:1、PLC用软件功能取代了继电器控制系统中大量的中间继电器、时间继电器、计数器等器件,使控制柜的设计、安装、接线工作量大...plc拓...
一个液位控制两个阀门的开关编程-盖德问答-化工人互助问答社区
一个中继就可以解决的问题为什么要编程?我给手画一个吧,看看能双传图片不??你这不就成了q0.0线圈得电,a阀b阀都又开又关的,逻辑不对。一个是开点...