您现在所在的是:

信捷XINJE

回帖:49个,阅读:5487 [上一页] [1] [2] [3] [4] [5] [下一页]
12356
YOUFG
文章数:211
年度积分:125
历史总积分:12356
注册时间:2006/11/14
发站内信
发表于:2023/10/29 14:15:18
#30楼
附件 1698559948174.jpg



把楼上的X8,X9,换成x10,x11,如图
4590
YS-W
文章数:1051
年度积分:167
历史总积分:4590
注册时间:2003/11/5
发站内信
发表于:2023/12/12 8:37:05
#31楼
这种情况完全用移位就能完成,还用什么C语言?不知你说的暂存数据是指什么?起什么作用?
50
18661126810
文章数:14
年度积分:50
历史总积分:50
注册时间:2021/1/23
发站内信
发表于:2023/12/12 15:42:52
#32楼
做过类似的  转盘有停顿跟没有停顿是完全不同的 有停顿用移位指令就行了
如果转盘没有停顿 必须要用到数组先入先出
7777
hnhyczj
文章数:3780
年度积分:50
历史总积分:7777
注册时间:2011/8/27
发站内信
发表于:2024/12/4 10:16:59
#33楼
回复 #7楼 知道一点
PLC里面就信捷可以用C语言
7777
hnhyczj
文章数:3780
年度积分:50
历史总积分:7777
注册时间:2011/8/27
发站内信
发表于:2024/12/4 10:23:05
#34楼
回复 #9楼 hdy0595
灯泡组装机,前面是组装工位,然后,检测(通电记录OK NG)--取OK料---取NG料(到此自动结束了)---循环上料位
7777
hnhyczj
文章数:3780
年度积分:50
历史总积分:7777
注册时间:2011/8/27
发站内信
发表于:2024/12/4 10:55:04
#35楼
回复 #30楼 YOUFG
这M1 M2的信号怎么取?
12356
YOUFG
文章数:211
年度积分:125
历史总积分:12356
注册时间:2006/11/14
发站内信
发表于:2024/12/6 13:59:25
#36楼
M1,M2,是检测开关输出的检测结果
此帖发自手机工控论坛
18018
welfare1987
文章数:1854
年度积分:163
历史总积分:18018
注册时间:2009/1/27
发站内信
发表于:2024/12/6 20:49:25
#37楼
通过AI自动编出来的程序:
// 定义变量
bool OK_Signal = FALSE; // 检验结果信号OK
bool NG_Signal = FALSE; // 检验结果信号NG
int RandomNumbers[2];   // 存储随机数的数组
int DataBuffer[100];    // 数据缓冲区,用于存储连续获取的数据
int BufferIndex = 0;    // 缓冲区索引
int ProcessedData;      // 处理后的数据

// 主程序循环
while(TRUE) {
   // 1) 获取检验结果信号OK和NG
   OK_Signal = GetOKSignal(); // 假设GetOKSignal是一个获取OK信号的函数
   NG_Signal = GetNGSignal(); // 假设GetNGSignal是一个获取NG信号的函数

   // 2) 把两个随机数存到数组里面
   RandomNumbers[0] = GenerateRandomNumber(); // 假设GenerateRandomNumber是一个生成随机数的函数
   RandomNumbers[1] = GenerateRandomNumber();

   // 3) 继续获取新的数据不停,把获取的第一个数提出来处理
   DataBuffer[BufferIndex] = GetNewData(); // 假设GetNewData是一个获取新数据的函数
   BufferIndex = (BufferIndex + 1) % 100; // 环形缓冲区

   // 提取第一个数据进行处理
   ProcessedData = ProcessData(DataBuffer[0]); // 假设ProcessData是一个处理数据的函数

   // 4) 根据处理结果执行OK和NG下料动作,优先执行OK再执行NG
   if (ProcessedData == OK) {
       if (OK_Signal) {
           PerformOKAction(); // 执行OK下料动作
       }
   } else if (ProcessedData == NG) {
       if (!OK_Signal && NG_Signal) {
           PerformNGAction(); // 执行NG下料动作
       }
   }

   // 5) 根据先入数据处理结果,如果没有OK才执行NG下料动作
   // 这一步已经在上面的代码中体现,只有当没有OK信号时才执行NG动作
}

// 假设的函数声明
bool GetOKSignal();
bool GetNGSignal();
int GenerateRandomNumber();
int GetNewData();
int ProcessData(int data);
void PerformOKAction();
void PerformNGAction();
7777
hnhyczj
文章数:3780
年度积分:50
历史总积分:7777
注册时间:2011/8/27
发站内信
发表于:2024/12/7 9:04:01
#38楼
回复 #37楼 welfare1987
要把这些代码写到信捷PLC的C语言里
21308
bnnyygy
文章数:6079
年度积分:204
历史总积分:21308
注册时间:2012/3/15
发站内信
2018论坛分享达人
发表于:2024/12/7 9:13:31
#39楼
难得楼主还在啊。
背景:信捷PLC,转盘机
1)获取检验结果信号OK和NG;
2)把两个随机数存到不同的地址里面或存到一个数组里面;
3)继续获取新的数据不停,把获取的第一个数提出来处理;
4)根据处理结果执行OK和NG下料动作,优先执行OK再执行NG;
5)根据先入数据处理结果,如果没有OK才执行NG下料动作

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

转盘机也做了不少,你这个好像不难,之前流水线动作那个应该和这个类似,我用汇川弄的,
http://bbs.gkong.com/archive.aspx?id=500413

这个是转盘不停,如果转盘要停,就更简单了

不在乎梯形图或者ST或者C,逻辑都一样。

梯形图的移位指令,ST/C都差不多的

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2025 Gkong.com, All Rights Reserved

78.0005