_alarmSId,_alarmSqId,_alarmScId有什么作用,怎么用哈,求教了。

已锁定

robotong

  • 帖子

    41
  • 精华

    0
  • 被关注

    3

论坛等级:游士

注册时间:2012-11-09

普通 普通 如何晋级?

_alarmSId,_alarmSqId,_alarmScId有什么作用,怎么用哈,求教了。

795

0

2012-12-13 21:10:57

看英文文档理解为这几个函数是给所有的显示设备发送消息,不同的是,_alarmSId不需要确认,_alarmSqId,需要确认,_alarmScId就是无触发的发送消息。不知道这样理解对不对。
(有兴趣的朋友加我QQ381728740,一起讨论)
但是他的参数structalarmID什么意思,在哪可以找到这个类型的说明,怎么使用,返回值具体是什么意思没看懂。
大家帮忙看看下面程序,红色字体的变量,我在系统里没有找到这些变量(可能是系统保留字,但我在文档中都没找到),请教一下这些变量的意在哪里定义,这些函数作用后对系统的影响或改变有哪些?谢谢指教
FUNCTION_BLOCK FB_ErrorShow
VAR_INPUT
i_i32LowerLimitErrorNumber : INT; //startnumber of shown errors
i_i32UpperLimitErrorNumber : INT; //endnumber of shown errors
END_VAR

VAR_TEMP
i32CountErrorNumber : INT := 0; //counter
RetValAlarmSc : DWORD; //temp return value
RetValAlarmSq : DWORD; //temp return value
END_VAR

FOR i32CountErrorNumber := i_i32LowerLimitErrorNumber TO i_i32UpperLimitErrorNumber DO //only work with specified errors
RetValAlarmSc := 16#7FFF;
RetValAlarmSq := 16#0;

//show each error and taste the state
CASE i32CountErrorNumber OF //take no.1 as an example
1: //ErrorPositiveLimitSwitchFrontbarX
RetValAlarmSq := _alarmSq (aErrorList[i32CountErrorNumber].boSignal, m_ErrorAxisAlarm);
RetValAlarmSc := _alarmSc (m_ErrorAxisAlarm);
(* 2: //ErrorNegativeLimitSwitchFrontbarX
RetValAlarmSq := _alarmSq (aErrorList[i32CountErrorNumber].boSignal, m_ErrorNegativeLimitSwitchFrontbarX);
RetValAlarmSc := _alarmSc (m_ErrorNegativeLimitSwitchFrontbarX);
3: //ErrorPositiveLimitSwitchRearbarX
RetValAlarmSq := _alarmSq (aErrorList[i32CountErrorNumber].boSignal, m_ErrorPositiveLimitSwitchRearbarX);
RetValAlarmSc := _alarmSc (m_ErrorPositiveLimitSwitchRearbarX);
4: //ErrorNegativeLimitSwitchRearbarX
RetValAlarmSq := _alarmSq (aErrorList[i32CountErrorNumber].boSignal, m_ErrorNegativeLimitSwitchRearbarX);
RetValAlarmSc := _alarmSc (m_ErrorNegativeLimitSwitchRearbarX);
5: //ErrorBreakFuseFrontbarX
RetValAlarmSq := _alarmSq (aErrorList[i32CountErrorNumber].boSignal, m_ErrorBreakFuseFrontbarX);
RetValAlarmSc := _alarmSc (m_ErrorBreakFuseFrontbarX);

*)
END_CASE;

//check the return-value of _alarmSc
IF ( RetValAlarmSc AND 16#8000 ) = 0
THEN
IF (RetValAlarmSc = 16#0000) //comming,gone
THEN
aErrorList[i32CountErrorNumber].eState := ERROR_STATE_CG;
ELSIF (RetValAlarmSc = 16#0001) //comming,
THEN
aErrorList[i32CountErrorNumber].eState := ERROR_STATE_C;
ELSIF (RetValAlarmSc = 16#0010) //comming,gone,acknowledge
THEN
aErrorList[i32CountErrorNumber].eState := ERROR_STATE_NULL;
ELSIF (RetValAlarmSc = 16#0101) //comming,acknowledge
THEN
aErrorList[i32CountErrorNumber].eState := ERROR_STATE_CA;
END_IF;
END_IF;
END_FOR;
END_FUNCTION_BLOCK

END_PROGRAM
_alarmSId,_alarmSqId,_alarmScId有什么作用,怎么用哈,求教了。 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMOTION

共有2222条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。