伺服压力机与MCGS、昆仑通态触摸屏:实时曲线、历史数据存盘与完整PLC程序功能概述.pdfVIP

伺服压力机与MCGS、昆仑通态触摸屏:实时曲线、历史数据存盘与完整PLC程序功能概述.pdf

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

伺服压力机的控制系统开发,最有趣的部分莫过于触摸屏和PLC的默契配合。最近在调试一套基于

三菱FX5S的伺服压装系统,用上了昆仑通态MCGS触摸屏的几个实用功能,顺手把玩了一把XY曲线动态追踪

,记录些实战心得。

先说触摸屏的数据可视化——实时曲线和XY曲线的动态展示,这玩意儿比单纯看数字带劲多了。在MC

GS的组态环境里,画布拖个趋势图控件,地址绑定到PLC的D寄存器区。比如压装过程的位移-压力曲线,PL

C这边需要同时更新两个数据通道:

```st

//三菱FX5S结构化文本程序片段

VAR

ActualPressure:REAL:=D100;//压力值存入D100开始的双字

ActualPosition:REAL:=D104;//位置值存入D104

END_VAR

//伺服数据采集线程

WHILETRUEDO

ActualPressure:=GET_SERVO_PRESSURE(轴1);//从伺服驱动器读取实际压力

ActualPosition:=GET_SERVO_POSITION(轴1);//读取实际位置

DELAY(10);//10ms采集周期

END_WHILE;

```

触摸屏上的XY曲线控件同时绑定D100和D104,立马就能看到动态绘制的散点图。调试时发现曲线刷

新有卡顿,后来把PLC的数据发送周期和触摸屏采样率调成一致才流畅。

配方功能是生产线的刚需。用结构体封装压装参数,配合触摸屏的配方视图直接编辑:

```st

TYPERecipe:

STRUCT

TargetPos:REAL;//目标位置

Speed:INT;//压装速度

Threshold:REAL;//压力阈值

END_STRUCT

END_TYPE

VAR_GLOBAL

CurrentRecipe:Recipe:=D200;//配方数据从D200开始存储

END_VAR

//配方切换执行

IF触摸屏.配方选择完成THEN

MOV_BLOCK(D200,配方号*SIZEOF(Recipe)+D500,SIZEOF(Recipe));//从配方库加载

END_IF

```

历史数据存储有个坑——直接频繁写U盘会缩短寿命。解决方案是在触摸屏脚本里设置缓存机制,积

攒够500条记录后再批量导出。导出时用系统自带的时间戳命名文件,避免覆盖:

```lua

--MCGSLua脚本片段

functionon_export()

localfilename=Data/..os.date(%Y%m%d_%H%M)...csv

localdata=history.get_records(500)

file.write(filename,table.concat(data,\n))

sys.msgbox(导出完成,文件:..filename)

end

```

PLC注释方面,坚持每个功能块开头写“军规”:

```st

//压装过程状态机

//状态0:待机1:下降中2:压装中3:保压4:返回

//注意事项:状态切换需检测伺服使能信号

CASEStateMachineOF

0:

IF启动信号AND无报警THEN

StateMachine:=1;

伺服使能(轴1,TRUE);

END_IF

//...其余状态处理

END_CASE;

```

这套系统调试完最大的感触是:好的注释比代码本身更重要。特别是伺服压力控制中的平滑过渡算

法,几个月后回头看注释还能立刻理解当时的处理逻辑,这才是工程代码该有的样子。

文档评论(0)

wszwtlg202 + 关注
实名认证
文档贡献者

一页纸且

1亿VIP精品文档

相关文档