登录
首页 PLC论坛 信捷XINJE
回帖 发帖
正文

主题:信捷PLC用C语言实现以下动作

点击:4389 回复:32

背景:信捷PLC,转盘机
1)获取检验结果信号OK和NG;
2)把两个随机数存到不同的地址里面或存到一个数组里面;
3)继续获取新的数据不停,把获取的第一个数提出来处理;
4)根据处理结果执行OK和NG下料动作,优先执行OK再执行NG;
5)根据先入数据处理结果,如果没有OK才执行NG下料动作。
22-01-18 14:01
代码发出来看看啊!
22-01-22 20:20

引用 zq3076 在 2022/1/22 20:20:33 发言【内容省略】

人家是求代码,又不是分享代码
22-01-22 22:18
是啊,是求助表情
22-01-23 09:53
附件 无标题.jpg
上位机的角度就是一个事件 触发队列出列或者入列 判断出列数据是否大于定值
信捷没接触过
但是一般fifo功能块都还是有的 跟queue同样的功能
但是涉及到一个细节 入列出列是不是同时发生 同时发生可以写进一个功能块里面 不是同时发生写成两个功能快 用两个开关触发就行了
还有一个问题 队列当前元素的数量小于转盘大小 (空料情况 根据具体工艺可能是三个方法而不是Ok 或则Ng两个)
{根据实际情况还得增加队列修改的功能 人工干预了物料 但是这就太复杂不是两句话讲的请了}
最后修改:2022/1/23 11:31:48
22-01-23 11:28
感谢大师指点,这个不会出现空料的情况,在上料时会有检测的
22-01-23 16:26
不知道你在说什么
22-01-23 17:39
信捷可以用C编程?
22-01-23 22:07
补充一下,就是一个转盘组装机,到组装好了以后,先检测,然后区分OK和NG产品,OK和NG都有取料的气缸,检测完了转1次就是取OK,再转1次取NG产品
22-01-24 10:00
是不是可以这样理解:有三个工位,一个用来检测,一个用来OK取料,一个用来NG取料,可能检测工位和取料工位是紧挨着,那么队列长度就是3,如果中间还有产品位,比如3,那队列长度就是6,当然也可以把转盘上的每一个产品位都编号,队列长度就是转盘的产品位数量。
那么每个工位只需要知道当前在本工位上的产品位编号,进而知道队列里对应的寄存器,检测工位给同编号的寄存器赋值,取料位读取同编号的寄存器数值来判断要不要取料
转盘每旋转一次,队列就移动一次,可以用一个寄存器当指针,从头到尾,再跳到头再开始,由于工位位置是固定的,工位上当前的产品位编号相对指针的偏移值也是固定的,通过指针,就知道每个工位的当初产品位编号
22-01-25 17:23

上一页下一页

工控新闻

更多新闻资讯