您现在所在的是:

无所不谈

回帖:8个,阅读:285 [上一页] [1] [下一页]
* 帖子主题:

AI编程

6390
第三颗牙
文章数:784
年度积分:295
历史总积分:6390
注册时间:2007/11/21
发站内信
发表于:2024/12/5 13:36:12
#0楼
AI横行,突发奇想,AI编写PLC程序会如何?
附件 无标题.jpg

附件 无标题2.jpg



3604
1099171258
文章数:1274
年度积分:252
历史总积分:3604
注册时间:2020/11/14
发站内信
发表于:2024/12/5 18:28:05
#1楼
这个AI编程方案是可行的,只是需要一个庞大的用户经验数据库


比如 你的 启动逻辑  停止逻辑 自锁逻辑  作好对于各种动作及条件的对应编程逻辑,然后把AI引入 只是需要试错 AI编程后 需要人工修改与审核
18141
welfare1987
文章数:1854
年度积分:286
历史总积分:18141
注册时间:2009/1/27
发站内信
发表于:2024/12/5 21:00:00
#2楼
梯形图在PLC编程的地位慢慢就变低喽表情
27204
goldage
文章数:15354
年度积分:496
历史总积分:27204
注册时间:2006/1/10
发站内信
2018论坛热心网友
发表于:2024/12/5 21:41:40
#3楼
以前在豆包试过还不行,估计现在是进化了
6390
第三颗牙
文章数:784
年度积分:295
历史总积分:6390
注册时间:2007/11/21
发站内信
发表于:2024/12/6 8:11:28
#4楼
AI还需要训练,用的置位命令,又用了自锁命令。
40861
tigermu 版主
文章数:15001
年度积分:376
历史总积分:40861
注册时间:2004/8/12
发站内信
2018论坛优秀版主
2018春节活动(二)
2017论坛优秀版主
2017国庆活动(一)
2016论坛优秀版主
2016国庆活动(一)
2015论坛优秀版主
西门子logo体验(三)
英威腾PLC体验(三)
2015春节活动
2014论坛优秀版主
2013论坛优秀版主
2012论坛优秀版主
2010年度论坛贡献奖
发表于:2024/12/6 9:15:06
#5楼
我记得好像chatgpt3.0的时候有人就用它做过plc编程,当然是一些简单的小程序,也有能单片机编程的AI,这种计算机或者说工程思想的内容我觉得AI应该更容易实现。
清泉石上,明月松间。
5674
121111115
文章数:1421
年度积分:118
历史总积分:5674
注册时间:2015/3/16
发站内信
2018论坛分享达人
发表于:2024/12/11 16:17:11
#6楼
我觉得没事还是去研究自动驾驶汽车吧,卷咱们这些臭鱼烂虾没有意义,AI再强线得人接吧,老板用AI编程好了调试不得去人吗,这个工具最终还是方便我们使用,替代搞自动化工程师还不太行,AI编完就一定正确能用吗,不得一个懂行的给审一下么,不合适还得给改改。
4423
15898151893
文章数:1334
年度积分:530
历史总积分:4423
注册时间:2022/7/28
发站内信
发表于:2024/12/16 16:11:31
#7楼
还得需要大量数据来支撑。
6632
1056128144
文章数:1135
年度积分:103
历史总积分:6632
注册时间:2018/2/23
发站内信
发表于:2024/12/24 11:52:15
#8楼
还是豆包,
STC8H1K28与TM1638的4位共阳led,5按键程序;
#include <reg52.h>
#include <intrins.h>

// 定义TM1638与单片机连接的引脚
sbit DIO = P2^0;
sbit CLK = P2^1;
sbit STB = P2^2;

// 共阳数码管段码表(0 - 9,A - F),根据实际数码管调整
unsigned char code SEG_CODE[] = {
   0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8, 0x80, 0x90,
   0x88, 0x83, 0xC6, 0xA1, 0x86, 0x8E
};

// 延时函数,用于产生适当的时序延时
void Delay(unsigned int x) {
   unsigned int i, j;
   for (i = 0; i < x; i++)
       for (j = 0; j < 120; j++);
}

// 向TM1638写入一个字节数据
void Write_TM1638(unsigned char dat) {
   unsigned char i;
   for (i = 0; i < 8; i++) {
       CLK = 0;
       DIO = dat & 0x01;
       dat >>= 1;
       CLK = 1;
   }
}

// 发送命令字到TM1638
void Send_CMD(unsigned char cmd) {
   STB = 0;
   Write_TM1638(cmd);
   STB = 1;
}

// 初始化TM1638
void TM1638_Init() {
   Send_CMD(0x8F);  // 设置显示模式,开启显示等
}

// 在指定位置显示一位数字(pos为0 - 3表示数码管从左到右的位置,num为要显示的数字0 - F)
void Display_Digit(unsigned char pos, unsigned char num) {
   Send_CMD(0x44);  // 设置数据自动地址加1模式
   STB = 0;
   Write_TM1638(0xC0 | pos);  // 设置显示地址
   Write_TM1638(SEG_CODE[num]);
   STB = 1;
}

// 显示4位数字(disp_buf数组存放要显示的4位数字,例如disp_buf[0]为最高位数字)
void Display_Number(unsigned char disp_buf[]) {
   unsigned char i;
   for (i = 0; i < 4; i++) {
       Display_Digit(i, disp_buf[i]);
   }
}

// 扫描按键,返回按键值(0 - 5表示5个按键,无按键按下返回0xFF)
unsigned char Scan_Keys() {
   unsigned char key_value = 0xFF;
   Send_CMD(0x42);  // 设置读按键命令
   STB = 0;
   Write_TM1638(0xC0);
   CLK = 0;
   DIO = 1;
   _nop_();
   _nop_();
   CLK = 1;
   _nop_();
   _nop_();
   if (DIO == 0) {  // 有按键按下
       key_value = 0;
       while (DIO == 0);  // 等待按键释放
   }
   STB = 1;
   return key_value;
}

void main() {
   unsigned char disp_buf[4] = {0, 0, 0, 0};  // 显示缓冲区
   unsigned char key;
   TM1638_Init();
   while (1) {
       // 在这里可以根据自己的需求设置要显示的数字到disp_buf数组中
       Display_Number(disp_buf);
       key = Scan_Keys();
       if (key!= 0xFF) {
           // 根据按下的按键进行相应处理,这里简单打印按键值示例
           switch (key) {
               case 0:
                   // 处理第一个按键按下的逻辑
                   break;
               case 1:
                   // 处理第二个按键按下的逻辑
                   break;
               case 2:
                   // 处理第三个按键按下的逻辑
                   break;
               case 3:
                   // 处理第四个按键按下的逻辑
                   break;
               case 4:
                   // 处理第五个按键按下的逻辑
                   break;
           }
       }
       Delay(10);  // 适当延时,避免频繁扫描
   }
}

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

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

93.6006