威纶通官方论坛

[求助]关于MT506L 宏无法实现的问题!

[复制链接]
发表于 2011-2-12 16:14:43 | 显示全部楼层 |阅读模式
各位前辈:
      本人最近在编写一个程序的时候写下了以下的程序,但实际测试运行时却无法通过,并出现死机!在此恳求各位前辈能为小弟找出问题所在,小弟在此感激不尽!
     代码如下:



int temp[223]
Sub func(int bit)
Select Case bit
Case 1
    SetData(temp[0] ,RW_Binplc ,23100,150)
    SetData(temp[150] ,RW_Binplc ,23250,73)
Break

Case 2
匿名  发表于 2011-2-14 21:32:15
你的函数定义错误,好多变量没有定义就是用,造成编译出错,我建议你还是仔细看一下相关说明,死机的现象到没有碰到。
匿名  发表于 2011-2-14 21:32:15
你的函数定义错误,好多变量没有定义就是用,造成编译出错,我建议你还是仔细看一下相关说明,死机的现象到没有碰到。
发表于 2011-2-14 21:32:15 | 显示全部楼层
不要用case
使用if else来判断
发表于 2011-2-14 21:32:15 | 显示全部楼层
你的函数定义有问题,还有些变量没有定义
 楼主| 发表于 2011-2-14 21:32:15 | 显示全部楼层
好像没有变量没定义吧?我用的是永宏的PLC.
我用了if else 替换了!是可以运行了!但是为什么 select case 不行呢?
而且我在运行的时候发现如果这宏在单独运行的时候是正确的,但在我的系统开全自动时把数据上传后,接着后面的数据就出错了!

                  
发表于 2011-2-14 21:32:15 | 显示全部楼层
你定义的是一个数组,int temp [223], 而你在获取值或赋值的时候字数选者错误,GetData(temp[123] ,R_Binplc ,3100,100) ,123是数组元素的整数,把100改为1就可以了。
 楼主| 发表于 2011-2-14 21:32:15 | 显示全部楼层
很抱歉!我不懂你说的什么意思!

GetData(temp[123] ,R_Binplc ,3100,100)
意思是从PLC 的R3100开始,提取100个字的内容放到temp数组,是从temp数组的第124个地址(temp[123]开始存储!
您需要登录后才可以发帖 登录 | 注册

本版积分规则

回复帖子

Archiver|小黑屋|威纶通官网 ( 粤ICP备06054553号 )

GMT+8, 2024-12-23 10:55

Powered by Discuz! X3.4

© 2001-2023 Comsenz Inc.

快速回复 返回顶部 返回列表