yanlei2583
级别: *
精华主题: * 篇
发帖数量: * 个
工控威望: * 点
下载积分: * 分
在线时间: (小时)
注册时间: *
最后登录: *
查看yanlei2583的 主题 / 回贴
楼主  发表于: 2008-09-10 15:30
自动控制小车的运行方向(左右移动),有五个按钮SB1SB2SB3SB4SB5和限位开关LS1LS2LS3LS4LS5,(SB1-LS1...SB5-LS5是一一对应的)
1,当小车所停的位置LS的编号大于呼叫的SB编号时,小车往左运行至呼叫的SB位置后,停止.
2,当小车所停的位置LS的编号小于呼叫的SB编号时,小车往右运行至呼叫的SB位置后,停止.
3.小车位置LS与呼叫编号SB相同时,小车不动作.



  
勇闯天涯
级别: *
精华主题: * 篇
发帖数量: * 个
工控威望: * 点
下载积分: * 分
在线时间: (小时)
注册时间: *
最后登录: *
查看勇闯天涯的 主题 / 回贴
1楼  发表于: 2008-09-14 03:27
楼主的题目存在争议,光我看就有两种理解方法,大家可以指点一下
这是我对楼主命题的第一中理解方法:


楼主并没有说非要像电梯那样,当前的目的地还没到达时,如果又遇到一个新的触发信号,将以新信号为基准,重新寻找目的地

这是我对楼主命题的第二中理解方法:


这个就有点电梯的味道了!这个不用我讲了吧,呵呵!

这道题目还有个重大问题:开机时,如果没有一个感应器能感应到,怎么办?
按程序的理解是先往左跑一点,然后就能知道车子到底在哪个位置了!
如果这是真正的设备,必须要在两头各加一个极限位置感应器以保证安全。
本帖最近评分记录:
  • 下载积分:+1(buyiwuxi) 热心助人!
    勇闯天涯
    级别: *
    精华主题: * 篇
    发帖数量: * 个
    工控威望: * 点
    下载积分: * 分
    在线时间: (小时)
    注册时间: *
    最后登录: *
    查看勇闯天涯的 主题 / 回贴
    2楼  发表于: 2008-09-14 03:32
    不知不觉已经凌晨3:30了,
    而且是中秋的凌晨,百感交集
    孤枕难眠,唯有工控家园与我作伴!
    勇闯天涯
    级别: *
    精华主题: * 篇
    发帖数量: * 个
    工控威望: * 点
    下载积分: * 分
    在线时间: (小时)
    注册时间: *
    最后登录: *
    查看勇闯天涯的 主题 / 回贴
    3楼  发表于: 2008-09-14 12:30
    昨晚一时大意,在6楼发的程序有错误,现在来修正一下,见笑了

    开始我发的第一个程序用起来肯定行不通,当按下一个按钮时车子找目的地,可松开按钮时就去一直朝右边跑,这个问题解决一下:


    意思是,当没有按钮触发的时候,X0-X4的信号不被传送到D200,就不会有松开后一直朝右边跑

    为什么一定要用MOVP而不用MOV呢?
    大家想一下,假如用MOV,如果同时按住两个按钮,将会发生什么情况?都提示到这里了,后面不用我说了吧。

    为什么改用D200呢?,其实不一定要D200,只要是掉电保持类的就可以,这样改有什么好处呢?
    这是防止每次开机时,在操作之前都一直往一个方向不停的跑。这是为了安全起见,每次开机先跑到上次关机前最后一个位置。

    所以,第二个程序也用D200,想试的话自己改哈,我就不发图片了。
    勇闯天涯
    级别: *
    精华主题: * 篇
    发帖数量: * 个
    工控威望: * 点
    下载积分: * 分
    在线时间: (小时)
    注册时间: *
    最后登录: *
    查看勇闯天涯的 主题 / 回贴
    4楼  发表于: 2008-09-17 21:09
    九楼的兄弟,很想跟你交个朋友!共同探讨程序设计。
    刚才看到九楼的分析,想必一定做了一番分析,但还是没有弄透彻。
    再次冒昧反驳,有不对的
    第一点:兄弟的意思是说当D200=0时的情况。这个情况当然有考虑过。
            首先,再次强调一下为什么要用D200,其用意在于:D200是掉电保持寄存器,目的是每次上电后自动返回到上次关机时的最后一个位置(即便是正在跑的时候突然停电,上电后依然能继续追踪掉电前的操作),而前面串一个"<> K2X0 K0"已经确保D200永远不等于零。
            然而,在什么情况下D200=0呢?那就是PLC程序传输完毕后进入"RUN"状态后,直到第一次按某个按钮这之间的一段时间。
            对付这一点,我们作为工程设计人员不难解决,方法有二:1.在输入程序之前,把软元件内存里面D200的值设为"1";2.输程序的时候把一个按钮线短接即可。这个应该不难吧,尽管这方法似乎有点土。
            还有,如果真要做成设备,肯定要加其他的程序,例如:急停按钮、故障自整断等等,所以,输程序的时候把急停按下去(这个是我向来的习惯),先按住某个按钮再打开急停也可以。当然我还是觉得方法1比较好一点。

    第二点:X10到X14都没感应,小车怎么跑?
           这一点我在6楼已经强调过,这个是这道题目的失误, 而我在程序里面的处理方法是只向一边跑,然后感应到某个感应器之后就知道小车的位置了。
           而且我在6楼也强调过,如果要做成设备,最好在两头各加极限位置感应,以确保不会越位。
           9楼的兄弟,请教一下你是怎么做处理这个问题的?

    第三点:这又是一个争议,是“前置优先”和“后置优先”的争议。
           在6楼的时候我都已经很强调这个问题了,楼主并没有说非要像电梯那样,我可以理解成,最后一个触发按钮为有效(即后置优先);也可以像楼主那样理解成,按一个按钮,要先跑到指定位置,目的地到达之前,按其他的按钮无效(即前置优先)。
           在8楼我是以“后置优先”为例,如果想改为“前置优先”很简单,在第一行串上Y0和Y1的常闭出点即可。

    如果有不对的地方,欢迎大家继续指正,一起讨论吧!
    九楼的兄弟,我期待你的反驳。
    勇闯天涯
    级别: *
    精华主题: * 篇
    发帖数量: * 个
    工控威望: * 点
    下载积分: * 分
    在线时间: (小时)
    注册时间: *
    最后登录: *
    查看勇闯天涯的 主题 / 回贴
    5楼  发表于: 2008-09-17 21:43
    呵呵,13楼的这个问题大家有有考虑过,这个就是“前置优先”和“后置优先”的争议。
    我把我的答案再归纳一下吧:
    前置优先:停车的情况下,很多按钮一起按的时候,以最先触发到的那个按钮为准,开始执行(有点抢答器的感觉)!请看:



    后置优先:无论小车是停止还是运行,在没有任何按钮按下的时候,以最后一次有效触发为准,开始执行。
    这样说有点抽象,什么叫做有效触发呢?举例说明吧,如:X0得电时,且X1、X2、X3、X4都没有得电,即X0此时为有效触发,小车就寻找X10的位置;
    还是8楼的程序,只是在这里重复发一遍,归纳到一起就比较全一点:


    呵呵,楼主可没有说不允许后置优先啊!
    勇闯天涯
    级别: *
    精华主题: * 篇
    发帖数量: * 个
    工控威望: * 点
    下载积分: * 分
    在线时间: (小时)
    注册时间: *
    最后登录: *
    查看勇闯天涯的 主题 / 回贴
    6楼  发表于: 2008-09-17 23:22
    15楼的兄弟,请把控制要求说详细点好吗?
    “把所有请求记忆下来,按请求先后,完成每一请求,在安全的情况下继续完成下一个请求。”
    请问什么样的情况才算“安全的情况下”?
    是停止后延时一会之后就是安全呢?还是加一个安全按钮之类的,触发一下才算安全了呢?
    请最好把题目说的详细,不然又有争议了
    或者你那台设备完全介绍给我,我自己设计整个电路加程序,包刮设备的安全、和电气的互锁我全部给你搞出来都行!
    勇闯天涯
    级别: *
    精华主题: * 篇
    发帖数量: * 个
    工控威望: * 点
    下载积分: * 分
    在线时间: (小时)
    注册时间: *
    最后登录: *
    查看勇闯天涯的 主题 / 回贴
    7楼  发表于: 2008-09-18 15:14
    请仔细阅读一下我的文字说明好吗?楼上的兄弟说的非常有道理,分析问题也非常到位,但并不代表我没有意识到这个问题,为什么我一发就发两个程序呢?

    如果你非要前置优先,我的发在15楼的第一个程序你看过没有?请分析一下第一个程序和第二个程序的区别
    因为有争议,所以我干脆把我理解的几种看法全部列出来,然后根据实际需要再进行抉择

    都说了这个是后置优先,意思是最后一个有效触发信号为基准
    而且楼主并没有说一定要前置优先,我不止一次强调说这个是命题不明确产生的争议

    这道题目是死的,做设备是活的,如果是设备,我会根据设备的实际需要进行取舍,再决定怎么编,
    有时候太过死板或者钻到牛角尖里面是很危险的,灵活和变通才能编出高质量的程序

    还有,如果还有其他的疑问,欢迎继续讨论。
    尤其是对于“没有任何一个感应器感应到的时候,触发一个按钮后小车该怎么跑”这个问题,我的方法的确有点死板,固定先朝一边跑找到位置后再找目标
    希望能在探讨中找到最简单的解决方法!