10第十章.docx
- 文档编号:26175260
- 上传时间:2023-06-17
- 格式:DOCX
- 页数:13
- 大小:402.70KB
10第十章.docx
《10第十章.docx》由会员分享,可在线阅读,更多相关《10第十章.docx(13页珍藏版)》请在冰豆网上搜索。
10第十章
第一十章诊断逻辑块
诊断逻辑块(DLB)是梯形图表逻辑块,能够存储在控制器中独立执行。
这些逻辑块是用来和在PACSystems控制器中运行的应用程序交互的有用工具。
DLB可以用来:
■新系统投入生产前的调整和任命
■从运行的程序中收集信息来分析和诊断问题
■在运行程序被投入实际应用之前对其进行测试修改和更正
■调整和测试由应用程序控制的设备
DLB用来完成特定的任务,是临时性的,如诊断问题的来源或调整设备。
DLB在LogicDeveloper目标中建立,和应用程序逻辑块建立的方式一样。
它们能存储在PACSystemsRX3i中并执行。
当使用完后,DLB能从RX3i中移除。
在这点上,RX3i的应用逻辑程序和应用变量分配返回DLB引进前的位置。
你也可以将DLB从LogicDeveloper目标中移除,在这点上,目标逻辑程序和变量分配将和DLB引进前的一样。
DLB逻辑程序能在STOPIOEnable状态下执行,该状态允许应用程序在脱离主程序的情况下调试。
注意
不要将DLB作为生产程序的一个永久部分,因为如果它的LogicDeveloper部分和RX3i上的Programmer_mode失去连接,DLB将停止并从RX3i内存上删除。
这种情况是有可能发生的,例如,如编程器的通信电缆断开或者另外一个编程器顺序连接到一个相同的RX3i并建立了一个Programmer_mode段。
在DLB逻辑程序中,禁止使用ONDTR,OFDT和TMR功能块。
这些功能块需要%L内存来正确执行,但是这种类型的内存不被DLB支持。
#FST_EXE系统变量也是禁止的。
所有其它内置的功能和功能块都能在DLB逻辑程序中使用。
注意:
SuspendI/O(SUS_IO)功能的操作方式在应用程序逻辑和DLB中是一样的。
应用逻辑程序和DLB逻辑程序都在CPUSweepLogic窗口中执行。
因此,当SUSPEND_IO由应用程序或DLB执行时,当逻辑窗口完成DLB执行时,立即发生的输出扫描将保持输出电流,在输入扫描发生时并不更新输入参考变量,输入扫描发生在下一个CPU扫描下的逻辑窗口执行之前。
注意SUSPEND_IO只能影响正常的I/O扫描。
它并不影响由于在应用程序或DLB逻辑程序中执行DO_IO或SCAN_SET_IO功能的I/O扫描。
SUS_IO对扫描有着同样的影响,不管它是在一次扫描中执行一次或是多次。
DLB操作
DLB被创建为特定对象的一个元件,独立于与对象相连得应用逻辑块元件。
它们以梯形图的形式写入并支持多个像其它块一样的相同特性,如ViewLock、EditLock等等。
在已给出的PME对象中,一个对象最多有128个DLB。
每个DLB都有相关的published变量表(PVT)和凸轮轮廓(和运动应用程序一起使用)文件。
每个DLB需要128K的存储容量。
DLB可以像其它功能块一样来复制和粘贴。
不管DLB是从哪里粘贴过来的,都有正常的冲突处理。
一个有效的DLB可以拖到Toolchest、活动块节点下的文件夹或者程序块节点下的文件夹。
注意只有活动块才能被拖动。
DLB块的下载、执行或修改并不影响主逻辑程序。
DLB操作的一些限制
因为DLB只是针对于短暂的应用,所以相对于其它应用逻辑块而言,其操作的过程中有着更多的限制。
■DLB不能调用任意逻辑块也不能被任意逻辑块调用。
■不能为DLB定义参数或时间表
■DLB没有参数,除了标准ENO输出参数。
因为DLB不能被其它逻辑块调用,所以可以通过它的ENO参数在DLB逻辑块中读写。
■不能使用含有%L或%P的地址。
因此,下列要求有%L或%P的内存就不能在DLB中应用:
a.#FST_EXE系统变量
b.内置定时器功能块,ONDTROFDT和TMR
c.%L或%P变量
■局部变量必须是符号变量。
更多的信息请参考“DLB变量”。
■DLB或它们相关的文件不能从RX3i上下载。
■DLB和它们相关的文件不能在闪存中存储。
■不能为LDDLB命名为_MAIN。
■不能修改在控制器中正在执行的有效的LDDLB。
■不能执行TestEdit(在线编辑模式和在线测试模式)。
■活动DLB上不能执行字节到字节的变换。
DLB变量
DLB有它自己的变量,位于DLB中,任何其它功能块都不能调用。
所有的DLB局部变量都是符号变量,保持变量和published变量。
局部变量需要时应该在DLB中应用。
如果系统已经开始运行并且已经在DLB中建立了新的全局变量,因为编程器的内存映射不在符合RX3i控制器的内存映射,编程软件将不在下载DLB。
DLB逻辑程序能读和写位于同一对象中的应用程序的全局变量。
这些变量可以使映射的或符号变量。
为了使用需要应用局部变量的功能,DLB必须使用全局的应用局部变量,该应用位于和DLB同一对象中。
这些功能包括:
a.COMM_REQ(状态变量的位置)
b.DO_IO
c.一些SVC_REQ功能
DLB能给全局located应用变量或者特殊建立的变量阵列建立别名,为需要使用located变量的DLB论证为“scratchpad”内存。
执行DLB
DLB属性
有效的DLB属性包括ExecutionMode,它有下列的可能变量:
■Sweep(默认)—在正常控制器扫描下,DLB在一固定点执行直到确定停止。
■UpdateRate—使用更新率为对象定义。
实际变换率?
。
如果扫描的次数比更新的次数多,DLB就只要在用户逻辑程序执行完当前的扫描就能执行。
■ScanOnce—当用户请求DLB执行开始时,DLB只准确的执行一次。
直到手动指示它在次运行才停止上一次的运行。
对象属性
对象属性包括DLBHeartbeat,它指定了控制器等从编程器到heartbeat信号的时间为毫秒级。
如果发生了信号超时,DLB将停止并从控制器中移除。
这就确保了在编程器和控制器之间出现通信错误时,DLB的执行能停止。
对于大型的应用或慢的PC机,一些如打开ControllerFileExplore的操作能造成DLB信号超时。
如果发生此类情况,需要增加DLBHeartbeat间隔。
对象设置时,DLBHeartbeat一般大于更新率。
有效DLB右击在线操作
菜单
使能规则
描述
Download
如果功能块位于控制器中,不在编程
状态,另一功能块正在控制器中执行
禁止操作。
Config+Logic不相等或
Access停止写入。
将功能块存储到控制器中,移除其它已经存在的功能块
Start
如果功能块已经开始运行,不在编程状态,另一功能块正在控制器中执行
禁止操作。
HWC+Logic不相等或
Access停止写入
将逻辑块存储到控制器中,移除其它已经存在的功能块,然后开始执行功能块
Stop
如果功能块没有正在执行,禁止操作
停止执行逻辑块
Remove
如果功能块不在控制器中,功能块正在执行或者不在编程状态,禁止操作
停止功能块,然后从控制器移除
DLB在线操作
在控制器中一次只能存储和执行一个DLB块。
给控制器下载有效的DLB你必须:
■程序逻辑与HWC和控制器中相等(LogicEQ)
■对象处于编程器模式
■写入控制器时有足够的优先权
操作
PACSystemsRX3i要求的最低优先级别
在停止模式下存储DLB
3
在运行模式下存储DLB
4
当下载DLB时,你可以选择存储初始量或者为局部变量清除内存。
如果其它DLB已经存储在控制器中,那么要在下载选择好的DLB时先进行清除。
对于PACMotion应用,推荐你选择存储初始量来替代为局部变量清除内存。
当DLB存储在控制中时,所有DLB中的局部变量都为公开变量,故HMI或其它设备都能观察到数据。
当DLB执行时不能对其有任何修改。
你只能打开DLB来观察和检测数据。
如果DLB已经存储在控制中但还没有执行,可以对其修改数据,但最初的修改将会从控制器中移除DLB。
你将在需要在移除前确认DLB被修改。
不执行DLB的上传。
一旦DLB存储在控制器中,在主程序运行或者如果控制器为带有I/O使能的停止状态或带有I/O使能的运行状态这些情况下,都能开始运行DLB。
从控制器上移除DLB
下列的动作将从控制器上移除DLB。
如果DLB正在执行,在被移除前需先停止。
■通过在线操作菜单从控制器中移除DLB
■通过下线中断编程器和控制器的连接,或者通信出错造成DLBHeartbeat时间溢出
■从编程器模式转换到监控模式
■下载到控制器(Config,Logic,StoredValues等等)
■清除控制器,除了故障表和控制器的补充文件
■执行任何Flash操作,除了Verify。
■从控制器上传(Config,Logic,StoredValues等等)
■改变控制器中的DLB
如果有一个正在执行的DLB,你从运动模式转换到停止模式,执行中的DLB也会相应的停止。
在这种情况下不会从控制器中移去DLB.。
如果你初始化一个上传文件,且此时有一个DLB在控制器中,系统将提醒你确认和注意,是否DLB已经移出和所有有效的DLB变成无效的。
如果控制器中已无DLB,但至少有一个有效的DLB,系统将提醒你确认和注意,是否所有有效的DLB都变成无效的。
如果你选择中止上传,将不会有什么改变。
如果你继续,所有的DLB都将无效。
如果想要激活,需要手动重新启动。
当DLB从控制器中移出的时候,任何由DLB建立的PMM数据记录(DLOG)和事件队列(ELOG)文件都一同移出。
在控制器中使用DLB的基本步骤
1.在导航窗口的ActiveBlocksDLBNode下建立一个梯形块。
有几种方法可以完成上述任务,如在有效块节点中建立一个新的模块,从Toochest拖一个模块或者从其它对象中复制粘贴一个模块。
2.选择DLB块属性,需要的话,如ExecutionMode。
3.如果需要的话,可以改变对象属性和DLBHeartbeat。
对于大型的项目,你需要增加DLBHeartbeat(默认的为1000)的值,以避免如执行打开ControllerFileExplorer任务时时间溢出的问题。
4.在线进入控制器,进入参数模式和LogicEqual。
5.右击DLB块,选择在线操作菜单,下载DLB到控制中并开始执行。
6.监控DLB的运行状态。
监控DLB的执行
有几个可以用来监控控制器中DLB的执行状态的工具:
■在DataWatch,LDEditor或DataMonitor中监控DLB局部符号变量。
■导航窗口中DLB图表显示了DLB的状态:
存储状态为
,执行状态为
。
■ProficyView应用程序可以通过使用面板和脚本中的DLB的局部符号变量来监控DLB的执行状态。
导航窗口中DLB模块图标显示了它的当前状态,如下所示:
无效的DLB—
(模块显示为灰色)
存储在控制中有效的DLB—
(模块显示为蓝色)
执行DLB—
(模块显示为绿色)
使用带有PACMotion凸轮轮廓的DLB
一个DLB最多可以有三个相关的凸轮轮廓。
DLB凸轮轮廓文件不计对应用程序限制的凸轮轮廓文件的数量。
当复制时,任何相关的凸轮轮廓都随着功能块一起复制,所以凸轮轮廓总是存在的。
如果DLB被粘贴或托拉到正常的逻辑程序,导航窗口下的凸轮轮廓库将自动加入凸轮轮廓文件。
每个核DLB相关的凸轮轮廓都有自己的菜单和属性,和凸轮轮廓库节点下的凸轮文件一样。
如果给正在控制器中的DLB加入新的凸轮轮廓,整个DLB需重新下载,以此来把新的凸轮轮廓导入控制器。
当下载DLB时,你可以选择存储初始量或者为局部变量清除内存。
如果其它DLB已经存储在控制器中,那么要在下载选择好的DLB时先进行清除。
对于PACMotion应用,推荐你选择存储初始量来替代为局部变量清除内存。
DLB例子
在这个例子中,在控制器中存储和执行了一个DLB梯形逻辑功能块。
在控制器中使用DLB的基本步骤如下:
1.建立梯形逻辑块,命名为MeasureTimeBetweenExecutions并放在Toolchest中。
关于和Toolchest一同工作的详细信息请参考在线帮助文件。
DLB功能块中的逻辑程序用来测量功能块之间执行的时间。
它可测出功能块之间执行的最小(MinScanTimeMsec_REAL),最大(MaxScanTimeMsec_REAL)和平均(AvgScanTimeMsec_REAL)的时间值。
将变量ScanCount_REAL的值设为0可以重新计时。
当DLB处于Sweep模式,这些值需要接近控制器的扫描时间。
MeasureTimeBetweenExecutions功能块的逻辑程序
2.在导航窗口中将DLB从Toolchest托拉到有效功能块DLB节点上。
导航窗口中添加DLB
3.更新DLB功能块属性,将ExecutionMode设置为Sweep模式。
DLB功能块属性—ExecutionMode
4.在控制器在线状态下选择参数模式。
5.选择DLB在线选择>从开始菜单下载DLB到控制器并开始执行。
6.注意DLB图标的变化和状态栏中DLB状态的变化。
启动后DLB功能块图标/状态栏
7.通过选择打开菜单打开DLB功能块。
8.将DLB功能块变量放到数据观察窗口来观测它的运行情况。
9.将控制器处于StopI/ODisabled状态。
注意DLB图标的变化。
10.将控制器处于运行模式。
注意到DLB图标没有发生变化。
11.开始DLB执行。
注意DLB图标的变化情况。
12.将控制器处于停止I/O使能模式。
当DLB停止时DLB图标发生了变化,状态栏显示了DLB的状态。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 10 第十
![提示](https://static.bdocx.com/images/bang_tan.gif)