B&R 2003CPU774上AI组态 点击:1205 | 回复:8



greenwall

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 0回
  • 年度积分:0
  • 历史总积分:3
  • 注册:2005年7月12日
发表于:2005-07-12 20:15:00
楼主
2003作为一个从站,在DI,DO卡件上组态2005主站上能有值,但在AI774上组态后2005主站上看不到值,用的是PG2000编程



windtalk

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 65回
  • 年度积分:0
  • 历史总积分:101
  • 注册:2005年3月23日
发表于:2005-07-18 16:10:00
1楼
不太明白您的意思,能否说得再详细些? 在PG2000下配置从站比较麻烦,建议您使用Automation Studio。

gongkongedit

  • 精华:1099帖
  • 求助:0帖
  • 帖子:14392帖 | 54470回
  • 年度积分:0
  • 历史总积分:622
  • 注册:2008年9月08日
发表于:2005-10-07 13:42:00
2楼
主站为两套2005,冗余配置,下挂一套2010,两套2003,由于扩容,需增加AI点至一套2003上(其余两套AI已满),使用AI774卡,采用AI***~AIS*M*[*]的格式采集数据组态后,发现AI点在主站上用AIS*M*[*]采集的数据全为0,但是同一从站上DI/DO点用DIS*M*[*]或DIS*M*[*]采集的数据全正常,检查后,发现在从站上可看到AI点数据,用的是PG2000编程,教各位如何解决请

B&R support.cn

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 7回
  • 年度积分:0
  • 历史总积分:16
  • 注册:2003年11月16日
发表于:2005-10-08 14:31:00
3楼
目前在2003系列中是不支持直接采集模拟量的。如果你需要采集模拟量,请在2003站中建立一个任务,将AI774的数据转换成AI999的虚拟IO数据就可以在冗余站上读出来了!请注意定义AI999的槽号时,请定义在空槽上! 定义的格式如下: AI999_02.input[0] = input01; 其中首先定义AI999为AI999类型(表示虚拟模拟量输入),02位置为槽号,可以填写小于20的任何空槽,不足两位的请在前面加零。AI999类型为一个结构体,将所需传输的AI量放到input[*]中即可在冗余主站上读出!

gongkongedit

  • 精华:1099帖
  • 求助:0帖
  • 帖子:14392帖 | 54470回
  • 年度积分:0
  • 历史总积分:622
  • 注册:2008年9月08日
发表于:2005-10-09 08:26:00
4楼
我采用的就是在2003站中建立一个任务采用AI999_xx[0-31]INT16-ARRAY结构,使用的是空槽,但在主站上用AIs*m*g1[0]读出的数据始终为0,不变化,而同一2003站上DI采用DI999_xx[0..63]的结构,在主站上可以读出数据,而我另一2003从站采用AI999_xx[0-31]INT16-ARRAY结构在主站上可以读出数据,不知是何原因, 另请教:采用AI999_02.input[0]方式和AI999_xx[0-31]方式,中间没有.input[0],是否不同,请教各位如何解决

B&R support.cn

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 7回
  • 年度积分:0
  • 历史总积分:16
  • 注册:2003年11月16日
发表于:2005-10-11 14:30:00
5楼
首先,我例子中使用的AI999_02.input[0]方式,是在Automation studio下的定义方式。这种格式是由AI999_typ这中自定义的数据类型决定的!在PCC I/O站中您可能会看到有一个io_slave这个任务。这个任务将根据AI999_typ所定义的结构,去自动的寻找这种结构的变量。而不是一个简单的INT的数组。在找到这种类型的变量后,会自动的将采集的数据往主站发送。 所以在定义AI999_XX的变量时,除了变量名字需要按照严格的格式外,AI999_XX这个变量的类型也必须是AI999_typ类型。如果在AS下,你可以在open / data type中看到该结构。DI999和AI999的结构是不同的。 btw:如果是2003从站上的本地数字量输入输出,不需要999虚拟变量,可以直接被主站识别!

gongkongedit

  • 精华:1099帖
  • 求助:0帖
  • 帖子:14392帖 | 54470回
  • 年度积分:0
  • 历史总积分:622
  • 注册:2008年9月08日
发表于:2005-11-04 13:12:00
6楼

gongkongedit

  • 精华:1099帖
  • 求助:0帖
  • 帖子:14392帖 | 54470回
  • 年度积分:0
  • 历史总积分:622
  • 注册:2008年9月08日
发表于:2005-11-04 13:43:00
7楼
仍然存在问题,现将过程叙述如下:
1.采用AI999_10.input[0]的格式将2003上AI774的AI点做在10号空槽,然后至主站2005上,用AIs3m10g1[0]采集,发现AIs3m10g1[0]已采集到,但不随2003上AI774的AI点变化。怀疑从站内存程序混乱(已安装/删除程序多次),于是清空2003上的程序,重装程序,发现主站2005上AIs3m10g1[0]采集的数据还是第一次通讯成功的数据,不变化;
2。第二天,将从站内存FLASH清空,GLOBAL MEMORY AI升至9000K,
至主站2005上,用AIs3m10g1[0]采集发现数据全为0,试将AI999_10.input[0]10号空槽改为7,11,15空槽,数据还是0,无计可施
请教各位如何解决?谢谢

B&R support.cn

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 7回
  • 年度积分:0
  • 历史总积分:16
  • 注册:2003年11月16日
发表于:2005-11-04 17:22:00
8楼
据您的描述,数据在一次冷启后应当会刷新。
所以请您检查一下,您的赋值程序,就是将AI转化为虚拟I/O那部分程序,是写在CYCLIC段呢,还是INIT段!在INIT段呢,该程序只会在启动时运行一次!可能是这个故障!

PS:该赋值程序最好放在你用户任务这一等级!

热门招聘
相关主题

官方公众号

智造工程师