2.4 控制器项目组态
在开始编程练习之前,我们先离线创建一个项目,作为编程的一个基本平台,等编制好要执行的程序代码后,再将项目文件下载到控制器,在线进行测试和调试。
创建一个名为CML—Test的新项目,选择CompactLogix控制器型号为1769-L35E,选择版本18,项目文件存放在路径C:\RSLogix5000\Projects处,如图2-5所示。
图2-5 创建新项目
点击“OK”按钮,创建后的项目如图2-6所示。
I/O组态树形分支下出现了CompactLogix系统的背板功能结构,项目被命名为CML—Test的1769-L35E控制器、本地以太网通信口以及本地的CompactBus,这是最基本的一个本地I/O的CompactLogix系统结构,也是我们编程实验设备所选择的硬件系统结构。
于CompactBus Local下面创建本地离散量I/O混合模块,模块命名为DInput_DOutput,位于CompactBus Local的1槽,如图2-7所示。
在连接页面Connection,设定RPI时间为5ms,如图2-8所示。屏蔽模块和运行模式下的连接故障引起的控制器主要故障,这两个选项都不勾选,在我们的程序测试中,暂时不涉及有关I/O模块的通信故障处理,如果选择该项可能导致停机。
创建并完成组态的1769-IQ6XOW4模块,在控制器数据区域产生离散量混合I/O模块结构数据表,如图2-9所示。
图2-6 创建后的项目
模块组态数据说明:
●ProgToFaultEn当控制器编程模式下模块通信故障时选择,设为0按照控制器编程模式的设定输出;设为1按照模块通信故障的设定输出。每个设置位对应相应的输出点。
●ProgMode控制器编程模式下输出回路的状态,设置为1保持最后状态;设置为0,用户定义状态,在ProgValue中设定。每个设置位对应相应的输出点。
●ProgValue控制器编程模式下输出回路的用户定义状态,设为0或1。每个设置位对应相应的输出点。
●FaultMode模块通信故障输出回路的状态,设置为1保持最后状态;设置为0,用户定义状态,在FaultValue中设定。每个设置位对应相应的输出点。
●FaultValue模块通信故障输出回路的用户定义状态,设为0或1。每个设置位对应相应的输出点。
模块输入数据说明:
●Fault输入故障状态,只使用0~5位,6~15位不使用。
●Data输入数据,只使用0~5位,6~15位不使用。
●ReadBack从输出回路读回的回路状态,只使用0~3位,4~15位不使用。
模块输出数据说明:
图2-7 创建本地离散量I/O混合模块
图2-8 设定RPI时间
●Data控制输出数据,只使用0~3位,4~15位不使用。
值得提醒的是,1769-IQ6XOW4模块原适用于Micro1500的控制器,组态方式是直接在数据表中完成,当我们在RSLogix5000的软件中组态,仍然要在数据表中设置,而不是在组态页面上设置并会自动传递到数据表中,所以要了解数据表中数据设置的含义。
离散量输入字的0~5位对应了编程实验设备面板上的旋钮DI0、DI1、DI2、DI3、DI4和DI5;离散量输出字的0~3位对应了编程实验设备面板上的灯DO0、DO1、DO2和DO3,如图2-10所示。输入信号和输出信号的每个端子的左侧为面板信号,可直接在面板上操作和显示;右侧的插孔为外接信号,可通过插头连接外部的同类信号。
图2-9 离散量混合I/O模块结构数据表
图2-10 编程实验设备面板
于CompactBus Local下面创建本地模拟量I/O混合模块,模块命名为AInput—AOutput,位于CompactBus Local的2槽,如图2-11所示。
在连接页面Connection,设定RPI时间为5ms,如图2-12所示。屏蔽模块和运行模式下的连接故障引起的控制器主要故障,这两项都不勾选,在我们的程序测试中,暂时不涉及有关I/O模块的通信故障处理,如果选择该项可能导致停机。
如图2-13所示,在模拟量输入组态界面,选择4个通道都使能。这4个通道使能也可以通过程序对模块结构数据标签的子元素进行修改,当通道使能,模拟量输入数据被读入数据表中,供编程使用。
这4个通道可接受0~10V的电压信号输入,或0~20mA的电流信号输入,经过A/D转换后,转换的数据范围为0~31140。这里输入电压信号和输入电流信号的转化精度是不一样的。我们的实验设备将选用0~10V的电压信号作为输入信号。
由于1769-IF4XOF2模块本身不能完成数据定标工作,所读取的模拟量输入数据为A/D转换的直接结果,数据定标只能通过程序运算完成。本书的实例中,为方便起见,来自模拟量信号的A/D转换数据都编程换算为0~10000的数据定标范围。
如图2-14所示,在模拟量输出组态界面,选择两个通道都使能。这两个通道使能也可以通过程序对模块结构数据标签的子元素进行修改,当通道使能,程序控制的输出数据被送至模拟量输出。
这两个通道的数据输出范围为0~31140,经过D/A转换后,可产生0~10V的电压信号输出,或0~20mA的电流信号输出。这里输出电压信号和输出电流信号的转化精度是不一样的。我们的编程实验设备将选用0~10V的电压信号作为输出信号。
图2-11 于CompactBus下面创建本地模拟量I/O混合模块
图2-12 设定RPI时间
由于1769-IF4XOF2模块本身不能完成数据定标工作,控制器送到模块的模拟量输出数据将直接进行D/A转换,数据定标只能通过程序运算完成。本书的实例中,为方便起见,送至模块D/A转换为模拟量信号的数据都编程换算为0~10000的数据定标范围。
图2-13 模拟量输入通道使能
图2-14 模拟量输出通道使能
创建并组态完成的1769-IF4XOF2模块,在控制器数据区域产生模拟量I/O混合模块结构数据表,如图2-15所示。
模块组态数据说明:
●Ch0ProgToFaultEn模拟量输出通道0使能,当控制器编程模式下与模块通信故障时的选择,设为0按照控制器编程模式的设定输出;设为1按照模块通信故障的设定输出。
●Ch0ProgMode模拟量输出通道0控制器编程模式设定使能。
●Ch0FaultMode模拟量输出通道0控制器与模块通信故障模式设定使能。
●Ch0InputEn模拟量输入通道0使能。
●Ch1InputEn模拟量输入通道1使能。
●Ch2InputEn模拟量输入通道2使能。
●Ch3InputEn模拟量输入通道3使能。
●Ch1ProgToFaultEn模拟量输出通道1使能,当控制器编程模式下模块通信故障时选择,设为0按照控制器编程模式的设定输出;设为1按照模块通信故障的设定输出。
●Ch1ProgMode模拟量输出通道1控制器编程模式设定使能。
●Ch1FaultMode模拟量输出通道1控制器与模块通信故障模式设定使能。
●Ch0OutputEn模拟量输出通道0使能。
●Ch1OutputEn模拟量输出通道1使能。
●Ch0FaultValue设置模块通信故障时的模拟量输出通道0的输出值。
●Ch0ProgValue设置控制器编程模式时的模拟量输出通道0的输出值。
●Ch1FaultValue设置模块通信故障时的模拟量输出通道1的输出值。
图2-15 模拟量I/O混合模块结构数据表
●Ch1ProgValue设置控制器编程模式时的模拟量输出通道1的输出值。
模块输入数据说明:
●Ch0Data模拟量输入通道0数据。
●Ch1Data模拟量输入通道1数据。
●Ch2Data模拟量输入通道2数据。
●Ch3Data模拟量输入通道3数据。
●Ch0InputOverRange模拟量输入通道0信号超范围状态位。
●Ch1InputOverRange模拟量输入通道1信号超范围状态位。
●Ch2InputOverRange模拟量输入通道2信号超范围状态位。
●Ch3InputOverRange模拟量输入通道3信号超范围状态位。
●Ch0OutputOverRange模拟量输出通道0信号超范围状态位。
●Ch1OutputOverRange模拟量输出通道1信号超范围状态位。
●Ch0OutputDataInvalid模拟量输出通道0数据无效位。
●Ch0OutputDataInvalid模拟量输出通道1数据无效位。
●Ch0ReadBack模拟量输出通道0数据读回。
●Ch1ReadBack模拟量输出通道1数据读回。
模块输出数据说明:
●Ch0Data模拟量输出通道0数据。
●Ch0Data模拟量输出通道1数据。
图2-16 编程实验设备面板
值得提醒的是,1769-IF4XOF2模块原适用于Micro1500的控制器,组态方式是直接在数据表中进行,当我们在RSLogix5000的软件中组态,除了通道使能,大部分仍然要在数据表中设置,而不是在组态页面上设置,所以要了解数据表中数据设置的含义。
在数据表中模拟量输入通道Ch0Data、Ch1Data、Ch2Data和Ch3Data所显示的数据,对应了编程实验设备面板上旋钮的AI0、AI1、AI2和AI3从0~10V的输入信号范围;数据表中模拟量输出通道Ch0Data和Ch1Data所显示的数据,对应了编程实验设备面板上电压表的AO0和AO1从0~10V的输出信号显示范围,如图2-16所示。输入信号和输出信号的每个通道的左侧为面板信号,可直接在面板上操作和显示;右侧的插孔为外接信号,可通过插头连接外部的同类信号。
在后面各个章节的编程实例中,这些离散量和模拟量的I/O数据会被重复使用,由于I/O通道的资源有限,被测试的例程将不会同时使用I/O数据,以确保外部数据的使用不会发生冲突。
创建项目时已自动生成连续任务,在连续任务下已自动生成程序MainProgram,在程序下已自动生成MainRoutine,如图2-17所示。
图2-17 项目结构
打开例程MainRoutine,如图2-18所示,将在梯形图中编写梯级逻辑,并将项目文件下载到控制器。在线运行测试,并可对编写的执行代码进行调试或修改。
图2-18 打开例程MainRoutine
以上,因为创建了从属于控制器的I/O模块,由此在控制器的数据区域中产生了离散量I/O模块和模拟量I/O模块的结构数据标签,关于其他标签的创建,我们将在例程编写的时候针对编程需求逐步创建。