SMEMA协议

前言

SMEMA是一种用于自动化生产线上相邻设备之间的标准通信协议,它通过IO信号来控制和协调设备间的物料传输。

原理说明

相邻设备间采用两组IO进行通讯。进料过程中,In1接收前站的请求出料信号,Out1通知前站当前设备空闲可以进行出料。同理,在出料过程中,Out2向后发生请求信号,In2 接受后站的状态。

运行逻辑如下

  1. 叫料:当本站空闲时,将Out1 设置为True,向前进进行叫料,并同步开始轮询In1 信号
  2. 进料:当本站检测到In1信号为True后,轨道启动进料,完成进料后将Out1信号设置为False
  3. 加工:对物料进行加工
  4. 等待出料:加工完成后,将Out2 信号设置为True,轮询In2信号,等待后站叫料。
  5. 出料:本站检查到In2 信号为True时,轨道开始出料,出料完成后将Out2 信号设置为False

程序实现

程序原理图如下,共分为5个状态:叫料、进料、加工、等待出料、出料。

 伪代码

var _cts = new CancellationTokenSource();
var token = _cts.Token;
try
{
	while(true)
	{
		token.ThrowIfCancellationRequested();
		if(status == 叫料)
		{
			out1 = true;
			if(!in1)
				continue;
				
			status  = 进料;
		}
		else if(stasus == 进料)
		{
			LineStart();
			if(!物料到位)
				continue;
			
			LineStop();
			status  = 加工;
		}
		else if(stasus == 加工)
		{
			Work();
			status  = 等待出料;
		}
		else if(stasus == 等待出料)
		{
			out2 = true;
			if(!in2)
				continue;
				
			status  = 出料;
		}
		else if(stasus == 出料)
		{
				LineStart();
				if(!物料离开)
					continue;
					
				LineStop();
				status  = 叫料;
		}
	}
}
finally
{
	AllStop();
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值