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

主题:如何用PLC和屏写一个任意组合顺序程序?

点击:1079 回复:18

引用 设备电工 在 2022/7/4 11:27:47 发言【内容省略】

这个首先你要预计一个最多的流程,假设最多是6个,那么就用这个数先除以100000,这样得到第一位,然后减去余数,再用余数除以10000,得到第二位,然后继续下去,三菱的除法占用两个连续寄存器,一个是商一个是余数,假设DDIV D10 K100000 D20,那么商在D20,余数在D22,因为这是32位,如果是16位就在D21里面。
这样做有个前提,那就是如果低于6个流程,后面要用0补齐,要不就乱套了,比如1132,输入就是113200,这样D20里面始终都是第一个工序对应的的工序号。
22-07-04 12:06
学习了。
22-07-04 13:31
这个可以有多种方式,可以配方方式,也可以在屏上输入1132,程序中做数据移位,编码,计算等方式处理。
比如,在屏上输入1132,在PLC的D1D0得到00001132,在程序中做and #F0000000 D0 D100;=L D100 #0;做D0左移一位,D0D1得到00011320,再做and,直到D100(D101)不为0,做编码提取出工序1执行,工艺完成,再做D0(D1移位)……
因为没带电脑程序就不写了。
三菱也有类似指令可以使用。
22-07-04 23:13
可能我太水了还是看不太懂。听你说移位我好像想到了什么
22-07-05 00:24
void SYS_RUN(unsigned char i)
{
switch(i)
{
case 1:/*执行工序1*/break;
case 2:/*执行工序2*/break;
case 3:/*执行工序3*/break;
default://跳出不执行break;
}
}
void RUN_DAT(unsigned int X)//输入执行数据,最多支持5位
{
unsigned char run1,run2,run3,run4,run5,i;
run1  = X%100000/10000;
run2  = X%10000/1000;
run3  = X%1000/100;
run4  = X%100/10;
run5  = X%10%10;
for (i=0; i<5; i++)
{
switch(i)
{
case 0:SYS_RUN(run1);break;
case 1:SYS_RUN(run2);break;
case 2:SYS_RUN(run3);break;
case 3:SYS_RUN(run4);break;
case 4:SYS_RUN(run5);break;
default:break;
}
}
}
22-07-05 00:30
很不错
22-07-08 20:38
这个方法太多了
22-07-09 09:41
厉害??厉害??
22-07-09 11:08
虽然不能实现无限次数,但你这个方法好好,且用上了,收到一半订金
22-08-06 19:11

上一页 上一页

工控新闻

更多新闻资讯