华中系统PLC高级语言Word文档下载推荐.docx

上传人:b****6 文档编号:20693363 上传时间:2023-01-25 格式:DOCX 页数:128 大小:47.41KB
下载 相关 举报
华中系统PLC高级语言Word文档下载推荐.docx_第1页
第1页 / 共128页
华中系统PLC高级语言Word文档下载推荐.docx_第2页
第2页 / 共128页
华中系统PLC高级语言Word文档下载推荐.docx_第3页
第3页 / 共128页
华中系统PLC高级语言Word文档下载推荐.docx_第4页
第4页 / 共128页
华中系统PLC高级语言Word文档下载推荐.docx_第5页
第5页 / 共128页
点击查看更多>>
下载资源
资源描述

华中系统PLC高级语言Word文档下载推荐.docx

《华中系统PLC高级语言Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《华中系统PLC高级语言Word文档下载推荐.docx(128页珍藏版)》请在冰豆网上搜索。

华中系统PLC高级语言Word文档下载推荐.docx

#defineSV_IDLE(0x00)//空状态

#defineSV_Reset_Delay(200)//伺服复位延时(ms)

#defineSV_Power_Delay(1000)//伺服上强电延时(ms)

#defineSV_Ready_Delay(50)//伺服准备好延时(毫秒)

#defineSV_Enable_Delay(5000)//伺服模块准备好超时时间(ms)

#defineSV_Brake_Delay(200)//开抱闸延时(ms)

#defineMODE_ESTOP(0x01)//急停

#defineMODE_RESET(0x02)//复位

#defineMODE_AXIS_READY(0x04)//轴准备好

#defineMODE_NORMAL(0x10)//正常

#defineMODE_SV_POWER(0x20)//伺服上电

#defineToolIdle(0x00)//非换刀状态

#defineToolRevFwd(0x01)//刀架准备

#defineToolStartUp(0x02)//刀架启动

#defineToolCheckDest(0x04)//检测刀是否到达目的刀位

#defineToolShotPin(0x08)//打出定位销

#defineCheckToolPin(0x0f)//检测定位销到位

#defineToolMotorStop(0x10)//刀架电机停

#defineToolRev(0x20)//刀库反转

#defineToolCheckLock(0x40)//检测锁紧信号

#defineToolTakePin(0x80)//拔出定位销

#defineToolChgEnd(0xf0)//换刀完成

#defineOver_Step(10)//系统修调的步距

#defineG96Mode

(1)//恒速度切削模式

#defineG97Mode

(2)//非恒速度切削模式

#definemode_selR[0]//模式选择

#definerun_enableR[1]//运行使能

#definesv_statR[2]//伺服上电状态

#defineaxis_disableR[3]//轴就绪

#defineLAST_MODE_SELR[4]//记录上一次选择的模式

#defineSystem_ModeR[5]//系统当前工作模式

#definereset_onemoreR[6]

#defineauto_enableR[7]//自动运行允许

#definestep_mulR_i[8/2]//步进倍率

#definehand_mulR_i[10/2]//手摇倍率

#defineaxis_selR_c[12]//手摇轴号

#defineFinding_Axis_ZeroR[13]//进给轴正在找Z脉冲

#definemdi_stateR[14]//系统为MDI状态

#defineAxisOverstepR[15]

#definesv_almR[16]//伺服报警

#definespdl_cmdR_ui[18/2]//主轴转数

#definespdl_ctrlR[20]//主轴控制

#definespdl_statR[21]//主轴状态

#definespdl_last_speedR_ui[22/2]//保存主轴的速度(防护门打开时、自动换档时需要)

#definespdl_last_ctrlR[24]//保存主轴的状态(防护门打开时、自动换档时需要)

#definealm_cancelR[25]

#defineSpdOutDAR_i[28/2]//当前主轴输出的DA

#definetool_ctrlR[30]//刀具换刀状态

#defineToolCurPosR[31]//刀具当前位置

#defineToolDesPosR[32]//刀具目的位置

#defineToolAlarmR[33]//刀具报警

#defineATC_StepR_c[34]

#defineATC_DirB[35]//刀架开始的运动方向

#defineCommandOutSpeedR_ui[36/2]//当前指令输出速度

#defineAdjustOutSpeedR_ui[38/2]//补偿后的指令输出速度

#defineCur_Shelves_PosR_c[40]//当前使用的挡位

#defineNew_Shelves_PosB[41]//新的主轴挡位

#defineshv_stageR[42]//换档的步骤状态

#defineAutoShelvesR[43]

#definejog_speedR_i[48/2]//点动速率

#definerpdfeedoverR_i[54/2]//快进修调

#definefeedoverR_i[56/2]//进给修调

#definespdl_overR_i[58/2]//主轴修调

#defineDoorCloseFlagR[60]//0:

防护门打开1:

防护门关闭

#defineDoorLockStateR[61]//0:

防护门有效1:

防护门失效

#defineHome_Finish_FlagR[65]//轴回零完成标记

#defineZ_lockR[66]//机床Z轴锁住

#definemac_lockR[67]//机床是否锁住

#definecoolant_ctrlR[69]//冷却状态

#defineCurSpldTFenZiR[70]//主轴传动比分子

#defineCurSpldTFenMuR[71]//主轴传动比分母

#defineCYCLE_STATR[72]//系统正在加工

#defineLubeStateR[73]//0:

无润滑1:

正在润滑

#defineRISE_HandWheelR[76]//记录手摇单元的状态

#defineSKIP_SWR[77]//跳段功能

#defineWaitMSTFinish_MR[78]//M代码执行完毕

#defineWaitMSTFinish_SR[79]//主轴转速到达

#defineWaitMSTFinish_TR[80]//换刀动作完成

#defineTestSpdlDaFlagR[81]//测试主轴DA标记

#defineAutoDoorStateR[93]//自动门的状态,0为关闭,1为开启

#defineCur_EStop_StateR[94]//外部运行允许的状态(0:

急停1:

运行允许)

#defineLast_EStop_StateR[95]//取外部运行允许上升沿

#defineDryRun_StateR[96]//空运行的状态

#defineSpdlBrakeFinishR[97]//主轴抱闸完成状态

#defineSpdlTriModeR[98]//星三角完成的标记

#defineTStock_ctrlB[98]//尾座控制0:

无动作1:

前伸2:

后退

#definechuck_modeR[99]//卡盘方式0:

外卡1:

内卡

#definechuck_ctrlB[100]//卡盘动作1:

外卡紧(内卡松)2:

外卡松(内卡紧)

#definechuck_statR[101]

#defineYeYa_StateR[102]//液压状态1:

开启,0:

关闭

#defineGPre_AlarmR[103]//液压报警

#defineSpdlInitSpinR_ui[104/2]//主轴初始速度

#defineSpdlCurSpeedR_i[106/2]//当前主轴的速度

#defineSpeedOverStepR_i[110/2]//当前输出允许的误差转速

#defineSeleStop_StateR[112]//程序选择停的状态0:

无效1:

有效

#defineStepOrHandwheelR[113]//步进还是手摇0:

步进1:

手摇

#definespdl_jogR[114]//主轴冲动

#defineInvarCurZeroR_i[118/2]

#defineInvarCurXPosR_ui[120/2]

#defineInvarRadiusR_i[122/2]

#defineInvarSpeedCut(int)(*ch_var(0,0))//恒速度切削标志

#defineInvarCurCutSpeed(int)(*ch_var(0,1))//恒线速度切削的速度(m/min)

#defineInvarMinSpldSpin(int)(*ch_var(0,2))//恒速度切的最小转速

#defineInvarMaxSpldSpin(int)(*ch_var(0,3))//恒速度切的最大转速

#defineAbsSpd_StartR(294)

#defineSpdl_Shel_AbsSpeed(x)R_ui[(AbsSpd_StartR+x*2)/2]//主轴档位的设定转速5unit(from294to303)

#defineActSpd_StartR(304)

#defineSpdl_Shel_ActSpeed(x)R_ui[(ActSpd_StartR+x*2)/2]//主轴档位的实测转速5unit(from304to313)

#defineTrans_StartR(314)

#defineSpdl_Shel_TFenZi(x)R[Trans_StartR+x*2]//主轴传动比分子5unit(314-316-318-320-322)

#defineSpdl_Shel_TFenMu(x)R[Trans_StartR+x*2+1]//主轴传动比分母5unit(315-317-319-321-323)

#defineTM1_MAXR[326]//短时定时器的总个数

#defineTM2_MAXR[327]//长时定时器的总个数

#defineTM(x)R[328+x]//15unit(from328to342)

#definesys_timer(x)R_ui[(344+x*2)/2]//短计时器100unit(from344to543)

#definesys_timer2(x)R_ul[(544+x*4)/4]//长计时器14unit(from544to599)

/////////////R600到R699用作保存触发器的状态/////////////////////////

#definetest_c_dwellR[670]//刚性攻丝

#definetest_c_prosR_ul[676/4]//刚性攻丝

#definealm_msg(x)R_ui[(720+2*x)/2]//4个PLC报警信息存储器(可以同时输出64个报警)

#definePLC_PERIODR[730]

////////////////////////////////////////////

#defineGS_MarkR[737]//攻丝标记0:

非攻丝1:

正向2:

反向

#defineGS_Spdl_Com_SpeedR_i[738/2]//攻丝主轴速度

#defineGS_Spdl_Yuting_PosR_l[740/4]//攻丝主轴预停角度

#defineGS_Spdl_Yuting_Pos_uR_ul[740/4]

#defineGS_Z_Tmp_PosR_l[744/4]

#defineGS_Spdl_Old_DirR[748]//攻丝前主轴状态

#defineGS_Spdl_Yuting_ktempB[30]//攻丝预停调节临时分子

#defineSys_Need_GotoZeroP_i[0]//系统上电是否提示回零

#defineSp_Shelves_SpeedP_i[1]//主轴换档时的指定转速[单位:

转/分钟]

#defineToolChangeTimeMaxP_i[2]//换刀超时时间

#defineToolLockTimeP_i[3]//锁紧时间

#defineToolFwdTimeP_i[4]//正转延时时间

#defineSysChuckTypeP_i[5]//卡盘类型[0:

手动;

1:

持续式;

2:

脉冲式]

#defineSpld_CurrentScopeP_i[6]//指令转速和实际转速之间的误差

#defineSpdl_SpeedOverTimeP_i[7]//主轴速度到达的超时时间

#defineSpldBrakeWaitTMaxP_i[8]//主轴停止后制动延时时间

#defineSpldBrakeDelayTMaxP_i[9]//主轴持续制动延时时间

#defineMachHomeBlockP_i[10]//机床是否有回零开关[0:

否;

是]

#defineMachLube_CTMaxP_i[11]//机床润滑间隔时间[单位:

分钟]

#defineMachLube_OTMaxP_i[12]//机床润滑持续时间[单位:

秒]

#defineMachLube_ATMaxP_i[13]//机床润滑报警检测时间[单位:

毫秒]

#defineSpldInitSpeedP_i[14]//主轴启动速度

#defineMac_Lock_MSTP_i[15]//机床锁住是否包含MST[0:

是]

#defineHandWheelDirP_i[16]//手摇脉冲方向(0:

同向1:

反向)

#defineGS_Spdl_Speed_MaxP_i[17]//攻丝主轴允许最高速度

#defineGS_Spdl_Speed_MinP_i[18]//攻丝主轴允许最低速度

#defineGS_Spdl_Yuting_k1P_i[19]//攻丝预停调节分子

#defineSpldTriaChangeTimeP_i[20]//主轴星三角切换延时

#defineYeYaAlarmMaxTP_i[21]//液压报警检测延时时间

#defineProDoor_Open_SpeedP_i[22]//防护门打开后的主轴转速(手动方式下有效)[单位:

转/分钟](出厂值50)

#defineSpdl_Rev_ModeP_i[23]//主轴反转方式[0:

Y输出;

模拟量极性]

#defineHandw_Use_StepLampP_i[24]//用面板倍率灯指示手摇倍率[0:

否1:

voidclr_tt(inti)

{

if(i<

0||i>

=114)

return;

clr_bit(TM(i/8),i%8);

100)

sys_timer(i)=0;

else

{

i=i-100;

sys_timer2(i)=0;

}

}

//////定时器的功能较特殊,建议不要进行&

&

和||的复合判断,使用时最好另起一行////////

intrun_tt(inti,longt)

return0;

set_bit(TM(i/8),i%8);

if(TM1_MAX<

i)

TM1_MAX=i;

if(sys_timer(i)>

t/PLC_PERIOD)

return1;

else

sys_timer(i)++;

if(TM2_MAX<

TM2_MAX=i;

if(sys_timer2(i)>

sys_timer2(i)++;

return0;

intget_tri_raise(intreg,intvalue)//取上升沿

intv;

v=X[reg]&

value;

if(v)

if(R[600+reg]&

value)

v=0;

R[600+reg]|=value;

R[600+reg]&

=~value;

returnv;

intget_tri_fall(intreg,intvalue)//取下降沿

R[600+reg]|=value;

v=0;

{

v=1;

R[600+reg]&

}

voidSetPrompt(intNo)//输出PLC提示

clr_tt(100);

*message_no()=No+1;

#ifndef_OLD_CNC_SYS_//7.09版(含)以前的上层

voidset_alm(intNo)//输出PLC报警

auto_enable=0;

set_bit(alm_msg(No/16),No%16);

#else

voidclr_alm(intNo)//清除PLC报警

clr_bit(alm_msg(No/16),No%16);

voidCncStop(void)

handwheel(0,-1,0);

//清手摇

run_enable=0;

spdl_ctrl=0;

spdl_stat=0;

AutoShelves=0;

spdl_last_ctrl=0;

tool_ctrl=ToolIdle;

coolant_ctrl=0;

LubeState=0;

YeYa_State=0;

TestSpdlDaFlag=0;

#ifdef_AxisMotor_Brake_

#ifdefOUT_ACT_DN_MotorBrake

OUT_ACT_DN_MotorBrake;

//抱闸

#endif

#ifdefOut_SpdlGroup

Out_SpdlGroup

voidMachLube_Fun(void)//机床润滑

longt1=(long)MachLube_OTMax*1000;

longt2=(long)MachLube_CTMax*1000*60;

if(LubeState)

#ifdefOUT_ACT_EN_MCLubeStart

OUT_ACT_EN_MCLubeStart

#ifdefOUT_LAMP_EN_KBLubeStart

OUT_LAMP_EN_KBLubeStart

if(run_tt(101,t1))

clr_tt(101);

LubeState=0;

#ifdefOUT_ACT_DN_MCLubeStart

OUT_ACT_DN_MCLubeStart

#ifdefOUT_LAMP_DN_KBLubeStart

OUT_LAMP_DN_KBLubeStart

if(run_tt(102,t2))

clr_tt(10

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 家庭教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1