jinsinfo
级别: *
精华主题: * 篇
发帖数量: * 个
工控威望: * 点
下载积分: * 分
在线时间: (小时)
注册时间: *
最后登录: *
查看jinsinfo的 主题 / 回贴
楼主  发表于: 2010-03-03 10:48
        小弟一月份接到一个设备改造任务,由我负责PLC编程。我原是学计算机的,因为此前成功改进了一台测试设备的测试程序(VB开发的),所以领导就这样安排了,理由是两者都是编程(不是我开玩笑,当时差点儿“晕倒” ,再三推辞,领导当时拿出了“礼贤下士”的姿态,声称就当学习学习,没有什么事情是百分百成功的,没办法只能接受了 )。就这样开始了PLC的学习之路,从论坛上下了一些学习资料、到图书馆借了两本书(借书之前就搞清楚了一些必要的因素如先把PLC品牌定好,这样效率高多了)。
        整个控制系统不算复杂,关键是控制7个气缸的动作,出错后要能够定位到点,考虑到输入按钮比较多,输出部件也多(负责设计的老工程师原先都是基于继电器线路考虑的),因此前两天我主动请战提出用触摸屏(算是“初生牛犊不怕虎”还是“无知者无畏”啊?),这下控制就复杂了一些(原来自动部分由PLC控制,手动则由继电器线路控制,  后来我了解到,之所以要用PLC是因为全部控制使用继电器线路比较复杂,器件较多,且今后还要增加不同型号的产品,成本会超出计划,尤其是时间继电器价格不便宜 ,所以才提出这样的设计框架,“晕”啊 )。
        刚开始编PLC时,老工程师带的年轻助工说控制线路设计好了,还用Festo的工具软件模拟了一下效果,当时以为这事简单了,只要把继电器控制线路“翻译”成PLC梯形图就行了,但随着对加工过程控制的了解,发现这样简单的“翻译”,先不说极大的浪费了PLC资源,就连一些必要的控制都无法完成,而另一方面“形势”变得急转而下,领导要求必须在3本月底完成改造任务。认识到问题的复杂性和“严重性”,我不得不放弃做一名翻译的理想,毅然决定转回来“吃老本”,按照加工过程控制的要求用计算机编程的思维方式来重新构思整个控制系统 ,所以我现在的这个程序中都是大量的条件判断、MOV、RST及WAND、WXOR这类指令(感觉有点儿汇编的味道,仔细想想,PLC指令系统就可以认为是一套专用的宏汇编系统)。
       这段时间以来,我觉得用计算机编程的思维方式处理PLC编程,最容易出错的地方就是由PLC的“扫描工作方式”引发的问题,特别是FEND之前的“主程序”段,一定要时刻注意条件(输入变化、软元件变化、“保持型”软元件)动态变化后程序的跳转方向。
       最后,有一个问题想请有经验的达人给予指导,就是如何考虑“急停”功能:按照PLC的“扫描工作方式”,在如下的梯形图1中,当“X000急停按钮”接通时,对动作输出部分可以做到“即时”响应,即可以精确的监测到究竟是“M999”还是“M998”完成了“急停”功能,而图2中,如果在执行到第1023步之后的时刻才发现需要终止下面的输出动作,这时按下“X000急停按钮”,想要终止第1049步的“Y016”输出(假设此时满足D21=2、D51=2),似乎不能完成,必须要等到下一个扫描周期才能接通“M999”断开第1049步,虽然PLC的扫描是以us计的,但这样的“不精确”,就会产生“滞后”隐患了。  小弟第一次编PLC,衷心期望有经验的达人给予指点,谢谢!



[ 此帖被jinsinfo在2010-03-03 10:56重新编辑 ]
jinsinfo
级别: *
精华主题: * 篇
发帖数量: * 个
工控威望: * 点
下载积分: * 分
在线时间: (小时)
注册时间: *
最后登录: *
查看jinsinfo的 主题 / 回贴
1楼  发表于: 2010-03-03 11:31
还在进行中......
正常加工部分完成了,模拟了一下,还行
现在在弄出错处理,比较麻烦的是出错处理是有比较严格的步序要求,需要考虑的因素较多,有点烦,
触摸屏还不熟,正在看视频学习,GOT F930的还不能直接仿真,正准备先用GT Desiger做一个GOT F950的屏,这样就可以模拟了,就是麻烦一些,需要再做F930版的
急停部分先用如梯形图1所示的方式处理,还好动作不多也不复杂,这样处理虽然程序农长一些,但放心些。
[ 此帖被jinsinfo在2010-03-03 11:36重新编辑 ]
jinsinfo
级别: *
精华主题: * 篇
发帖数量: * 个
工控威望: * 点
下载积分: * 分
在线时间: (小时)
注册时间: *
最后登录: *
查看jinsinfo的 主题 / 回贴
2楼  发表于: 2010-03-03 16:22
无人解答???
jinsinfo
级别: *
精华主题: * 篇
发帖数量: * 个
工控威望: * 点
下载积分: * 分
在线时间: (小时)
注册时间: *
最后登录: *
查看jinsinfo的 主题 / 回贴
3楼  发表于: 2010-03-03 18:49
         急停不用PLC控制而直接使用硬件连接确实是更好的选择。 有此一问是因为在编写时首先想到的是继电器线路中急停的连接方式,“直译”之后再看程序才意识到它们两者之间的差别,然后的第一反应就是急停是为安全需要而设,安全是第一位的,效率则不必很在意,才弄出图1那样的“低效算法”,正是这个原因,才想更多的了解一下这个问题。第一次编写PLC程序,距离写出“漂亮”的程序还有很长的路,现在最关心的是逻辑正确以及用PLC语言正确的表达出来,追求效率是需要技术根底的,还不敢奢望。
jinsinfo
级别: *
精华主题: * 篇
发帖数量: * 个
工控威望: * 点
下载积分: * 分
在线时间: (小时)
注册时间: *
最后登录: *
查看jinsinfo的 主题 / 回贴
4楼  发表于: 2010-03-04 13:20
引用
引用第6楼hanqin于2010-03-03 21:09发表的  :
感觉不像是plc的程序


]

呵呵,我是“按照加工过程控制的要求用计算机编程的思维方式来构思整个控制系统的 ,所以现在的这个程序中都是大量的条件判断、MOV、RST及WAND、WXOR这类指令(感觉有点儿汇编的味道)”
jinsinfo
级别: *
精华主题: * 篇
发帖数量: * 个
工控威望: * 点
下载积分: * 分
在线时间: (小时)
注册时间: *
最后登录: *
查看jinsinfo的 主题 / 回贴
5楼  发表于: 2010-03-05 09:10
引用
引用第9楼玉龙于2010-03-04 21:14发表的  :
感觉好复杂,确实有点像汇编的味道。


可能是因为我是新手,所以才把这个弄得复杂了,确实不太符合“简单才是美”的准则!
jinsinfo
级别: *
精华主题: * 篇
发帖数量: * 个
工控威望: * 点
下载积分: * 分
在线时间: (小时)
注册时间: *
最后登录: *
查看jinsinfo的 主题 / 回贴
6楼  发表于: 2010-03-06 17:06
不是电工出生的,在这方面也没有什么经验,看来是一个常识性的“低级”问题啊 ,编PLC的时候只从程序功能的完整性上考虑,而忘了参考电工的基本应用准则,贻笑大方了。
jinsinfo
级别: *
精华主题: * 篇
发帖数量: * 个
工控威望: * 点
下载积分: * 分
在线时间: (小时)
注册时间: *
最后登录: *
查看jinsinfo的 主题 / 回贴
7楼  发表于: 2010-03-07 21:30
引用
引用第14楼lba1218于2010-03-06 23:44发表的  :
敢干!了不起。


现在开来确实有点儿“无知者无畏”的“大无畏”精神,现在只能是背水一战了!不过,以现在的情形来看,也算是“置之死地而后生”了。
jinsinfo
级别: *
精华主题: * 篇
发帖数量: * 个
工控威望: * 点
下载积分: * 分
在线时间: (小时)
注册时间: *
最后登录: *
查看jinsinfo的 主题 / 回贴
8楼  发表于: 2010-03-07 22:28
引用
引用第13楼mkomko于2010-03-06 23:25发表的  :
用MC指令切断母线电流即可,按下紧急按钮后,在touch 画面上加报警信息,用报警信号条件的反信号接负载,逻辑关系就很完善了


对一些命令还了解有限,这次写了近2K步也没用过这条基本指令,对您以上的说法还不大明了。看来真是“路漫漫其修远兮”啊。
jinsinfo
级别: *
精华主题: * 篇
发帖数量: * 个
工控威望: * 点
下载积分: * 分
在线时间: (小时)
注册时间: *
最后登录: *
查看jinsinfo的 主题 / 回贴
9楼  发表于: 2010-03-08 10:08
引用
引用第18楼rockyhuo于2010-03-08 01:41发表的  :
使用SFC的步进梯形图处理你的问题就简单得多,只要有前后的关系,慢慢学吧,路是自己走出来的,条条大路通罗马,只要能行就不管拉,我以前的编程也是的


SFC目前还没有涉及,熟悉PLC编程后再学SFC是不是更好,还是无所谓? 请指点迷津,谢谢!