SECS/GEM如何实现越南现场自定义消息

今天给大家解答一下大家长期的疑问,大家想知道SECS/GEM如何实现自定义消息

2025年越南半导体爆发,大量的国内设备厂商售卖设备过去。

由于生产的半导体产品不一样,现场是出现少量的自定义消息,采用金南瓜SECS/GEM成熟的方案,用户只需少量时间,按照例程抄到自己代码里面,简简单单就实现自定义消息了。

如果开发者用过SECS/GEM,按照格式只需使用到 listElement、listSplit俩条函数就能实现对所有SML解析和提取数据。

C++和C#、Labview等开发语言都是一样的做法

下面就提供一下现场的代码截图

cpp 复制代码
// 处理越南现场S3F103
void OnS3F103Message(IMCHandle *, int64 stream, int64 function, bool send_reply, 
	int64 transactionID, const char* TSN_data, const char* header, void *clientData)
{
	CSecsEquip* pSH = (CSecsEquip*)clientData;
	CLabviewSecsCallback* pHV = (CLabviewSecsCallback* )pSH->GetClientData();
	
	// 记录log
	string pLog = "收到S3F103数据,数据:";
	pLog += TSN_data;
	pHV->SaveLog(pLog);	

	// 处理
	vector<string> listData;
	listSplit(TSN_data, listData);
	if (listData.size() == 4)
	{
		pHV->SaveLog("解析S3F103数据没有问题,带的数据数量3个");	
		
		string pEQPID = listData[1];
		string pSUBEQPID = listData[2];
		string pINFO = listData[3];

		pSUBEQPID = listElement(pSUBEQPID, 1);

		pINFO = listElement(pINFO, 1);
		string pLotID = listElement(pINFO, 1, 1, 1);
		string pJobCommand = listElement(pINFO, 2, 1, 1);


		// 添加远程命令
		S3F103Data pS3F103Data;
		pS3F103Data.pSUBEQPID = pSUBEQPID;
		pS3F103Data.pLotID = pLotID;
		pS3F103Data.pJobCommand = pJobCommand;
	}

}
相关推荐
CANI_PLUS8 分钟前
电脑文件共享
运维·服务器
ClouGence11 分钟前
MongoDB 双向同步如何防止数据循环?(附实操指南)
数据库·mongodb
雪芽蓝域zzs21 分钟前
第 1 章:IDEA 创建 SpringBoot3.5.16 Maven 项目
java·maven·intellij-idea
TDengine (老段)23 分钟前
TDengine IDMP 十大实用功能(7)
数据库·物联网·时序数据库·tdengine·涛思数据·工业数据·idmp
Decay__25 分钟前
15_MySQL 数据同步与迁移方案 —— 复制 / DataX / Canal / 异构同步(对标 Oracle GoldenGate)
运维·数据库·sql·mysql·架构
Linux界最忧郁之人29 分钟前
华为云ECS&IMS&AS实战|弹性云服务器、私有镜像、弹性伸缩完整实验
linux·运维·服务器·centos·华为云·openstack
golang学习记29 分钟前
IDEA 开始换芯,发布全新AI版终端
java·人工智能·intellij-idea
vipxieliang38 分钟前
ValidX 正则表达式预编译优化:Pattern 复用策略
java·spring boot·后端
zjx238838 分钟前
oracle11g转Gbase8s库SQL常见问题修改
数据库·sql
真上帝的左手1 小时前
30. 技术专题-‌应用框架组件-缓存-Redis
数据库·redis·分布式·缓存·中间件