flyfeky
bilibili 工控贵族
级别: 论坛先锋
精华主题: 0
发帖数量: 861 个
工控威望: 1011 点
下载积分: 1938 分
在线时间: 686(小时)
注册时间: 2012-05-09
最后登录: 2024-05-13
查看flyfeky的 主题 / 回贴
楼主  发表于: 2018-08-09 18:22
重新描述一下过程,假设1-10共10个工位,小车依次经过两个工位,由1.2,3,4,5.6.7.8.910使用不使用来决定。  

例如:  1 6 9 不使用时,  满足条件时(工位有工件等),那小车经过的工位依次为2-3,  3-4 4-5 5-7 7-8 8-10

注意: 条件满足时只移动两个工位,就算完成;小车由伺服电机驱动。

2-3,  3-4 4-5 5-7 7-8 8-10  某一时刻只执行一个, 执行优先级一样。


大家都分别发表一下思路,如何简洁的实现通用算法,  完贴时我把大家宝贵经验整理一下。
[ 此帖被flyfeky在2018-08-09 19:10重新编辑 ]
西门子倍福WPF+C#数据库,槽式设备专家
ymmfa
不想大江大河,不想浪起潮落,只愿一湾小湖,静待岁月安好。
级别: 管理员

精华主题: 8 篇
发帖数量: 9543 个
工控威望: 8427 点
下载积分: 16328 分
在线时间: 5295(小时)
注册时间: 2006-08-10
最后登录: 2024-05-13
查看ymmfa的 主题 / 回贴
1楼  发表于: 2018-08-09 18:45
这是一个新手比较理解的办法:

如果用步进的话, STL  S21~ STL S30

12345678910使用不使用,对应M0~M10

然后跳转到每步的时候,如果M通就执行。如果不M不通就跳到下一步。
本帖最近评分记录:
  • 下载积分:+1(flyfeky) 真诚感谢!
  • 特别提醒大家:
    偶尔修改下自己的密码,以防被盗
    不要在多个网站都用一样账号密码
    偶尔还是要发发贴,回回贴,不要总潜水
    flyfeky
    bilibili 工控贵族
    级别: 论坛先锋
    精华主题: 0
    发帖数量: 861 个
    工控威望: 1011 点
    下载积分: 1938 分
    在线时间: 686(小时)
    注册时间: 2012-05-09
    最后登录: 2024-05-13
    查看flyfeky的 主题 / 回贴
    2楼  发表于: 2018-08-09 19:09
    引用
    引用第1楼ymmfa于2018-08-09 18:45发表的  :
    这是一个新手比较理解的办法:

    如果用步进的话, STL  S21~ STL S30

    12345678910使用不使用,对应M0~M10
    .......


    杨站长再来回帖.
    西门子倍福WPF+C#数据库,槽式设备专家
    030403118
    自动项目、PLC、视觉、通讯等工控软件开发QQ3515716
    级别: 工控侠客

    精华主题: 3 篇
    发帖数量: 1980 个
    工控威望: 2896 点
    下载积分: 25142 分
    在线时间: 1372(小时)
    注册时间: 2014-01-05
    最后登录: 2024-05-14
    查看030403118的 主题 / 回贴
    3楼  发表于: 2018-08-09 19:13
    什么鬼? 完全看不懂
    新手路过
    项目、视觉、通讯QQ3515716
    ymmfa
    不想大江大河,不想浪起潮落,只愿一湾小湖,静待岁月安好。
    级别: 管理员

    精华主题: 8 篇
    发帖数量: 9543 个
    工控威望: 8427 点
    下载积分: 16328 分
    在线时间: 5295(小时)
    注册时间: 2006-08-10
    最后登录: 2024-05-13
    查看ymmfa的 主题 / 回贴
    4楼  发表于: 2018-08-09 19:26
    你主楼一编辑,我有点蒙了。。
    有修改的时候最好回复在楼下,不要修改主楼。。。
    限制 编辑时间就是这个原因。。

    然后回到正题,如果要两两移动。
    假如2345都被选择否了,那是不是先移动1和6,再移动7和8,9和10?
    那这样,否的话只能否偶数,如果单数,还会剩余一个。

    那可以把之前的STL修改一下,加上相关部分。
    如果C1为0,那第一个被启动的只是先预备启动。
    如果C1为1,那么就可以直接启动。同时再启动之前有预备启动信号的。
    直接启动后,RST一下C1。

    这样就可以成对启动了。
    特别提醒大家:
    偶尔修改下自己的密码,以防被盗
    不要在多个网站都用一样账号密码
    偶尔还是要发发贴,回回贴,不要总潜水
    ymmfa
    不想大江大河,不想浪起潮落,只愿一湾小湖,静待岁月安好。
    级别: 管理员

    精华主题: 8 篇
    发帖数量: 9543 个
    工控威望: 8427 点
    下载积分: 16328 分
    在线时间: 5295(小时)
    注册时间: 2006-08-10
    最后登录: 2024-05-13
    查看ymmfa的 主题 / 回贴
    5楼  发表于: 2018-08-09 19:44
    还可以利用变址,然后循环N次达到效果,思路整理一下:

    M0 是状态选择
    M1~M10是启动选择,10个工位
    M100~M110是启动信号。
    程序的目的是根据M1~M10的选择,对应输出M100~M110。并且是成对启动的。

    PLC刚上电时,先把Z1和Z2为零。
    Z1记录了成对启动第1个的编号,Z2记录了成对启动第2个的编号
    比如当Z1等于1,Z2等于2的时候, SET  M100Z0和M100Z1就是SET  M101和M102。

    程序中主要有两个STL:

    按下总启动按钮,第一次扫描到STL1 时,Z0=1,M0Z0=M1。对M0Z0进行一个判断。
    1,M0Z0 为OFF
    没被选择,直接跳到STL2,在STL2中, Z0+1,然后再跳到STL1。

    2,M0Z0为ON,M0为OFF
    这说明当前编号被选择,并且是成对的第一个。那就把当成的Z0 MOV给Z1,然后同时SET M0和S2,跳到STL2,Z0+1,又回到STL1

    3,M0Z0为ON,M0为ON
    这说明这是成对的第二个,同时SET M100Z0和M100Z1。这样就成对启动了。然后RST M0,同时SET S2进入STL2

    第2个STL就要就是Z0+1,如果Z0=10了,就结束 ,如果Z0不到10,就跳到S1继续扫描。

    判断三种情况那里,也可以做成3个STL,这样不容易出错
    特别提醒大家:
    偶尔修改下自己的密码,以防被盗
    不要在多个网站都用一样账号密码
    偶尔还是要发发贴,回回贴,不要总潜水
    ymmfa
    不想大江大河,不想浪起潮落,只愿一湾小湖,静待岁月安好。
    级别: 管理员

    精华主题: 8 篇
    发帖数量: 9543 个
    工控威望: 8427 点
    下载积分: 16328 分
    在线时间: 5295(小时)
    注册时间: 2006-08-10
    最后登录: 2024-05-13
    查看ymmfa的 主题 / 回贴
    6楼  发表于: 2018-08-09 20:10
    调试通过。不足之处你自己完善吧。




       选择+成对启动.rar (158 K) 下载次数:109
    特别提醒大家:
    偶尔修改下自己的密码,以防被盗
    不要在多个网站都用一样账号密码
    偶尔还是要发发贴,回回贴,不要总潜水
    honggun
    级别: 网络英雄
    精华主题: 0
    发帖数量: 1447 个
    工控威望: 6869 点
    下载积分: 24976 分
    在线时间: 860(小时)
    注册时间: 2009-11-16
    最后登录: 2024-05-14
    查看honggun的 主题 / 回贴
    7楼  发表于: 2018-08-09 21:05
    站长好样的,点赞!
    flyfeky
    bilibili 工控贵族
    级别: 论坛先锋
    精华主题: 0
    发帖数量: 861 个
    工控威望: 1011 点
    下载积分: 1938 分
    在线时间: 686(小时)
    注册时间: 2012-05-09
    最后登录: 2024-05-13
    查看flyfeky的 主题 / 回贴
    8楼  发表于: 2018-08-09 21:11
    学习了站长,   还没怎么看明白。
    西门子倍福WPF+C#数据库,槽式设备专家
    libin520
    虽然没什么突破和进步,却还是每天在坚持着。
    级别: 工控侠客
    精华主题: 1 篇
    发帖数量: 2096 个
    工控威望: 2525 点
    下载积分: 3893 分
    在线时间: 1076(小时)
    注册时间: 2008-10-24
    最后登录: 2024-05-12
    查看libin520的 主题 / 回贴
    9楼  发表于: 2018-08-09 21:49
    站长功力深厚。学习了。楼主改主贴,弄得跟帖有点不匹配。
    本帖最近评分记录:
  • 下载积分:+1(flyfeky) 我检讨.
  • 需要高品质音乐资源+QQ群:723680148,音质好的音乐让爱车如音乐海洋。享受美妙音乐带来的超快感。音乐文件资源来聊即送。
    ymmfa
    不想大江大河,不想浪起潮落,只愿一湾小湖,静待岁月安好。
    级别: 管理员

    精华主题: 8 篇
    发帖数量: 9543 个
    工控威望: 8427 点
    下载积分: 16328 分
    在线时间: 5295(小时)
    注册时间: 2006-08-10
    最后登录: 2024-05-13
    查看ymmfa的 主题 / 回贴
    10楼  发表于: 2018-08-09 22:34
    抱歉, 前面好象我又理解错楼主意思了。
    楼主有可能是想做一个“万能程序”,让同一个PLC程序可以用在多台相似的机器上。
    理论上只要硬件不冲突,还真的可以。
    一是根据软元件的数值不同,机器做不同的动作。
    二是根据接线不同,机器作不同用途。比如短接X1是弯管机,短接X2变成清洗机,短接X3变成包装机。

    比如QQ.exe  我可以一台电脑开3个QQ,只是输入不同账号和密码。但进程里都是三个QQ。

    有一个舞台项目大概编程思路是这样:
    程序由:扫描主程序,功能子程序,参数输入输出   三部分组成
    导演希望在不同时间段,舞台出现不同的背景。(比如央视春晚的背景液晶屏)
    一组参数为10个D,D0-D9。
    D0代表此动作保持的时间,D1代表伺服移动时的速度,D23456789代表8个伺服的绝对位置。
    一共有100组参数。
    客户在触摸屏上设置好每组画面8块液晶的高低数值。按联机启动时,一组一组依次展示,从第1组到第100组。
    比如某小品节目使用3号参数,某相声节目使用8号参数,某歌唱节目使用10号参数。
    也可以事先输入好,根据导演的时间自动运行。当然也可以手动运行,就是直接使用其中一组参数。
    这些D代表了不同的参数,有点象QD75P编程时的定位数据那种概念。
    主程序 先扫描第一个D,如果D>0,那说明这里有活干,就触发了相应的子程序。并且在触发前把D1-D9这些参数传送到相应的子程序对应的区域。

    再举一个例:
    假如某设备控制机械手在电脑上打字。电脑键盘上的123456789ABCDEFG回车空格就可以在触摸屏上选择
    比如按键“1数字”的话,就可能是伺服移动到X=20,Y=30的位置,然后再输出一下气动元件。
    比如按键“enter回车键”的话,就可能是伺服移动到X=120,Y=80的位置,然后再输出一下气动元件。
    所以有可能我们要把所有字母对应的位置先输入到掉电保持寄存器中保持起来。
    然后触摸屏上输入了ymmfa.com回车
    PLC把分别把y存入D0,m存入D10....回车存入D100
    主程序扫描D0,然后根据D0的内存,把相应存储区的XY坐标找出来MOV过去,然后CALL伺服移动的子程序。
    执行完后再做下一行,直到遇到空白参数为止才停下
    这是一种原始的笨方法,不过实现起来比较容易。

    最早的时候梦想当一个黑客,做出一个万能程序,这个程序可以不断升级自己,并且不断分身,一个用来守护进程,一个用来寻找肉鸡,一个用来自我升级。。。
    后来发现其实人世间就这样一个程序,一个程序叫孩子,参数是天天不听话。一个程序叫老婆,参数是天天使劲花钱,当然还有很多很多程序,比如广大网友们。有的看贴回复,有的看贴不回复。
    本帖最近评分记录:
  • 下载积分:+1(1054529736) 站长厉害
  • 下载积分:+3(mk自动化)
  • 下载积分:+5(东方花猪) 好贴好贴! 纵横工控人家 ..
  • 下载积分:+1(工控大学徒) 若不撇开终是苦,各不捺 ..
  • 特别提醒大家:
    偶尔修改下自己的密码,以防被盗
    不要在多个网站都用一样账号密码
    偶尔还是要发发贴,回回贴,不要总潜水
    zhou5245
    级别: 探索解密
    精华主题: 0
    发帖数量: 54 个
    工控威望: 177 点
    下载积分: 16715 分
    在线时间: 180(小时)
    注册时间: 2012-02-23
    最后登录: 2024-01-02
    查看zhou5245的 主题 / 回贴
    11楼  发表于: 2018-08-09 22:51
    mark。支持下。