AR下IMA通讯

<< 点击显示目录 >>

主页  PVI通信 > 应用例程 > AutomationRuntime >

AR下IMA通讯

1. 功能块功能描述

用于上下位通讯。有断线重连功能。结合时间设定功能。

 

2. 功能块软件配置信息

AS版本

AS3.0.90

操作系统版本

V4.00

伺服操作系统版本

需要库

AsIMA,brsystem.

编写人

刘柏严

测试人

朱细敏

审核人

 

项目名称

ImaStdC,ImaStdST

任务说明

Ima-负责通讯主任务,包含通讯数据模块 传送给上位。

TimeVis-负责上位时间设定。通常上下位通讯时间由下位决定。

TimeCpu-负责下位时间设定。

 

3. 版本信息

软件版本

修改内容

修改人

V1.00

修改

 

V1.20

修改命名,注释

刘柏严

V1.21

根据测试文档修改本文档错误处,以及程序时间设定限制。

刘柏严

V2.01

修改变量,将内部变量整合成一个变量gImaCtrl

刘柏严

V2.02

修改通讯关闭时ident已经为0的bug

刘柏严

V2.10

Visu标准化(字体、页面号等)

穆珊珊

 

4. 数据交换

Ima任务输入输出接口图:

clip0031

变量说明:

I/O

名称

类型

描述

IN

IMA_DATA_MODULE_NAME

STRING

初始化数据模块名称

IN

IMA_RESTART_DELAY

UINT

错误发生后多长时间重新启动通讯

OUT

gImaCtrl.monitor.visIMABmpIndex

USINT

通讯状态显示位图序号

调试变量

 

 

 

 

gImaCtrl.monitor.infoInit

imaInfoStruct

显示错误信息

 

gImaCtrl.monitor.infoCommPV

imaInfoStruct

显示错误信息

 

gImaCtrl.monitor.infoCommAUX

imaInfoStruct

显示错误信息

 

5. 程序流程图

IMA 任务流程

clip0032

 

 

时间设定任务流程

clip0033

6. 配合界面图

橙色文字为说明文字

蓝色文字为连接变量

clip0034

 

7. 功能块使用说明(如何在新的项目中使用step by step)

步骤

说明

操作方法

1

新建上位项目中添加控制包,选择Existing Package,根据自己项目语言选择例程中对应的Ima ,TimeVis两个包。

Logical view中右键添加Package->Existing Package->Ima ,TimeVis

2

将两个任务拖入硬件任务中,将Ima包中的数据模块推入到硬件任务中

 

3

确认是否已经有gActPic和gSetPic两个变量,否则编译报错。

 

4

编译。

 

5

新建上位Visu

 

6

更新数据源

Data sources->Refresh

7

在任意页面添加两个输入或输出变量,分别连接到数据源TimeCpu ,TimeVis两个任务中的任意变量。相当于激活页面和数据源之间的连接,这样导入的时候所有输入输出控件所连接的变量也会一起导入,否则需要手动一个一个连接。

 

8

导入页面

File->Import VC resources from other project->选择demo项目-〉选择导入的页面

9

检查是否所有导入项连接变量正确

 

10

删除在第7步添加的临时输入或输出变量

 

11

按照自己需要修改导入页面的序号

如若修改,请同时修改数据模块ImaObj中PV_LIST_0段“/CONVAL”的值

12

确认IMA数据模块中该页面的通讯变量正确(因为页面序号改变了)

 

13

编译检查功能是否正常

 

 

8. 调试注意

写数据模块注意点:

只读结构体没有问题

只写结构体没有问题

读写结构体有如果结构体中变量类型不一致时有问题。

读写最后一个元素是数组的结构体可以只写数组名进行全体成员通讯。例如: gAxis.setPos[10]可以只写gAxis.setPos进行通讯

通讯条件变量一定是全局UINT类型例如gActPic "/CONPV=gActPic /CONVAL=0"

IMA 通讯数据模块中连接配置 "/CN=IF5.22" 节点号是16进制的。

IMA 通讯数据模块中连接配置是可以使用动态变量的,这样就可以更改连接。

 

9. 报警代码(本功能块的报警)

报警号

常量定义

故障描述

 

 

 

 

 

 

 

10. 内部重要变量名称

名称

类型

描述

 

 

 

 

 

 

 

 

 

 

常见问题:

问题1:IMA程序是放在上位机中,但是是屏还是CPU作为上位呢?

解答:一般把屏作为上位,把IMA和TIMEVIS放在上位机内,因为屏处理的任务相对少一些。

 

问题2:无法导入“File->Import VC resources from other project->选择demo项目-〉选择导入的页面”?

解答:要在切换到VISUALIZATION的环境下,才可从FILE中出现Import VC resources from other project。导入时要选择project所在文件夹形式。

 

问题3:出现如下代码的实际意义?
   (*Variable declare*)
   gActPic := gActPic;
   gSetPic := gSetPic;

解答:在程序中出现是为了便于监控查看和VISUALIZATION来关联。

 

问题4:在编译X20时,会出现如下错误提示:

clip0035

解答:缺少brsystem库,为了保证延迟时间与任务无关,调用了一个RTInfo函数,获取任务周期。

这样保证无论在哪个任务周期下,延迟时间均可以保证。该方法几乎在很多功能块中使用。