当前位置: 首页 > wzjs >正文

wordpress如何设置网站描述精准拓客软件哪个好

wordpress如何设置网站描述,精准拓客软件哪个好,山东网站定制设计,360免费建站官方SET SNB 是工业自动化中 “写入编号参数” 的核心操作,与 GET NSN 形成 “读 - 写” 闭环,共同服务于生产追溯、设备通信和数据管理。其实现通常基于状态机逻辑,包含命令接收、请求发送、响应处理和错误控制等阶段,确保编号设置的…

SET SNB 是工业自动化中 “写入编号参数” 的核心操作,与 GET NSN 形成 “读 - 写” 闭环,共同服务于生产追溯、设备通信和数据管理。其实现通常基于状态机逻辑,包含命令接收、请求发送、响应处理和错误控制等阶段,确保编号设置的可靠性和可追溯性

一、功能块实例化

二、功能块变量声明

*IN variables*)
(*---------------------------------------------*)
VAR_INPUTptIN_STATION_ITAC			:POINTER TO ST_ITAC_V2_0;			(* Data for communication *)sSerialNumber	:STRING[cSerialNumberLen];iState			:INT := 0;		(*default := 0*)uiLayer			:UINT := 2;uiSerialNrMode	:UINT;bIn_SendCMD		:BOOL;								(* Start send command. Wait for response *)
END_VAR(*---------------------------------------------*)
(*OUT variables*)
(*---------------------------------------------*)
VAR_OUTPUTbOut_ACK				:BOOL;bOut_NAK				:BOOL;
END_VAR(*---------------------------------------------*)
(*Local variables*)
(*---------------------------------------------*)
VARiStep,iStepOld			:INT;fbiTonTimeinStep			: TON;tTimeinStep				: TIME;sArg1			:STRING[MAX_STRING_LENGTH];sArg2			:STRING[MAX_STRING_LENGTH];FormatString	:FB_FormatString;bmerker: BOOL := FALSE;
END_VAR(*---------------------------------------------*)
(*IN/OUT variables*)
(*---------------------------------------------*)
VAR_IN_OUTEND_VARVAR CONSTANTtTimeout			:TIME:=t#30s	;
END_VAR

三、功能块 代码

(* Timer *)
IF iStep <> iStepOld THENiStepold := istep;fbiTonTimeinStep(IN:= FALSE, PT:= t#1h, Q=> , ET=> tTimeinStep);
ELSEfbiTonTimeinStep(IN:= TRUE, PT:= t#1h, Q=> , ET=> tTimeinStep);
END_IFCASE iStep OF0:(*clear function's return value*)bOut_ACK	:= FALSE;bOut_NAK	:= FALSE;iStep		:= iStep+1;1:(* wait for command 	*)IF bIn_SendCMD THENptIN_STATION_ITAC^.MMC_Comm.SET_SNB.bError				:= FALSE;ptIN_STATION_ITAC^.MMC_Comm.SET_SNB.bRecACK				:= FALSE;ptIN_STATION_ITAC^.MMC_Comm.SET_SNB.bRecNAK				:= FALSE;ptIN_STATION_ITAC^.MMC_Comm.SET_SNB.sErrText				:= '';ptIN_STATION_ITAC^.MMC_Comm.SET_SNB.sSerialNumberRecv		:= '';ptIN_STATION_ITAC^.MMC_Comm.SET_SNB.iStateRecv			:= 0;ptIN_STATION_ITAC^.MMC_Comm.SET_SNB.uiLayerRecv			:= 0;ptIN_STATION_ITAC^.MMC_Comm.SET_SNB.sSerialNumberRecv		:= '';ptIN_STATION_ITAC^.MMC_Comm.SET_SNB.iState				:= iState; (*'1';  (* Serial Production*)*)ptIN_STATION_ITAC^.MMC_Comm.SET_SNB.sSerialNumber			:= sSerialNumber;ptIN_STATION_ITAC^.MMC_Comm.SET_SNB.uiLayer				:= uiLayer;ptIN_STATION_ITAC^.MMC_Comm.SET_SNB.uiSerialNrMode		:= uiSerialNrMode;ptIN_STATION_ITAC^.MMC_Comm.SET_SNB.bSendRequest 			:= TRUE;iStep 	:= iStep+1;END_IF;2:(* wait for answer *)IF  ptIN_STATION_ITAC^.MMC_Comm.SET_SNB.bRecACK THENIF sSerialNumber <> ptIN_STATION_ITAC^.MMC_Comm.SET_SNB.sSerialNumberRecv THENbmerker := TRUE;sArg1 := ptIN_STATION_ITAC^.MMC_Comm.SET_SNB.sSerialNumberRecv;sArg2 := sSerialNumber;FormatString(	sFormat	:= '02| FB_SEQ_iTAC_SET_SNB Recieved SerialNumber [%s] is not matching with sent SerialNumber [%s]',arg1 	:= F_STRING (sArg1),arg2 	:= F_STRING (sArg2),sOut	=> ptIN_STATION_ITAC^.MMC_Comm.SET_SNB.sErrText);bOut_NAK   := TRUE;ELSEbOut_ACK   := TRUE;END_IFiStep:= iStep +1;END_IFIF  ptIN_STATION_ITAC^.MMC_Comm.SET_SNB.bRecNAK THENbOut_NAK   := TRUE;ptIN_STATION_ITAC^.MMC_Comm.SET_SNB.bError				:= TRUE;ptIN_STATION_ITAC^.MMC_Comm.SET_SNB.sErrText				:= '02| FB_SEQ_iTAC_SET_SNB -> NAK received ';iStep:= iStep +1;END_IFIF tTimeinStep>tTimeout THENbOut_NAK   := TRUE;ptIN_STATION_ITAC^.MMC_Comm.SET_SNB.bRecACK				:= FALSE;ptIN_STATION_ITAC^.MMC_Comm.SET_SNB.bRecNAK				:= TRUE;ptIN_STATION_ITAC^.MMC_Comm.SET_SNB.bError				:= TRUE;ptIN_STATION_ITAC^.MMC_Comm.SET_SNB.sErrText				:= '02| FB_SEQ_iTAC_SET_SNB -> timout ';iStep:=iStep +1;END_IF3: (*END*)IF NOT bIn_SendCMD THENiStep:= 0;END_IFELSEiStep := 3;END_CASE;

四、功能块代码说明

1、计时器与状态管理

IF iStep <> iStepOld THENiStepold := iStep;fbiTonTimeinStep(IN:= FALSE, PT:= t#1h, Q=> , ET=> tTimeinStep);  // 状态切换时重置计时器
ELSEfbiTonTimeinStep(IN:= TRUE, PT:= t#1h, Q=> , ET=> tTimeinStep);   // 持续计时
END_IF;
  • 功能:记录每个状态的持续时间,用于检测通信超时(如超过tTimeout则触发错误)。

2、状态机核心流程

1. 初始化状态(iStep=0)
0: (* 清除输出标志 *)bOut_ACK := FALSE;       // 清除确认响应bOut_NAK := FALSE;       // 清除否定响应iStep := iStep+1;        // 切换到等待命令状态
  • 功能:重置通信结果标志,为新的设置请求做准备。
2. 发送设置请求(iStep=1)

iecst

1: (* 等待发送命令 *)IF bIn_SendCMD THEN       // 检测到发送命令// 重置通信模块状态ptIN_STATION_ITAC^.MMC_Comm.SET_SNB.bError := FALSE;// ... 清除其他接收标志和错误信息// 设置SET_SNB参数ptIN_STATION_ITAC^.MMC_Comm.SET_SNB.iState := iState;        // 生产状态(如1表示批量生产)ptIN_STATION_ITAC^.MMC_Comm.SET_SNB.sSerialNumber := sSerialNumber;  // 待设置的序列号ptIN_STATION_ITAC^.MMC_Comm.SET_SNB.uiLayer := uiLayer;      // 生产层级(如产线、工位)ptIN_STATION_ITAC^.MMC_Comm.SET_SNB.uiSerialNrMode := uiSerialNrMode;  // 序列号模式ptIN_STATION_ITAC^.MMC_Comm.SET_SNB.bSendRequest := TRUE;    // 触发SET_SNB请求iStep := iStep + 1;                                          // 切换到等待响应状态END_IF;
  • 功能
    1. 接收到设置命令后,清除历史错误标志。
    2. 配置待设置的序列号、生产状态、层级等参数。
    3. 向 MMC 系统发送 SET_SNB 请求,请求写入序列号信息。
3. 处理响应与错误(iStep=2)
2: (* 等待MMC响应 *)IF ptIN_STATION_ITAC^.MMC_Comm.SET_SNB.bRecACK THEN       // 收到确认响应// 验证返回的序列号是否与发送值一致IF sSerialNumber <> ptIN_STATION_ITAC^.MMC_Comm.SET_SNB.sSerialNumberRecv THENbOut_NAK := TRUE;  // 序列号不匹配,返回错误// 格式化错误信息FormatString(sFormat := '02| FB_SEQ_iTAC_SET_SNB 接收序列号[%s]与发送值[%s]不匹配',arg1 := ptIN_STATION_ITAC^.MMC_Comm.SET_SNB.sSerialNumberRecv,arg2 := sSerialNumber,sOut := ptIN_STATION_ITAC^.MMC_Comm.SET_SNB.sErrText);ELSEbOut_ACK := TRUE;  // 验证通过,返回成功END_IF;iStep := iStep + 1;END_IF;IF ptIN_STATION_ITAC^.MMC_Comm.SET_SNB.bRecNAK THEN        // 收到否定响应bOut_NAK := TRUE;ptIN_STATION_ITAC^.MMC_Comm.SET_SNB.sErrText := '02| FB_SEQ_iTAC_SET_SNB -> NAK received ';iStep := iStep + 1;END_IF;IF tTimeinStep > tTimeout THEN                             // 超时处理bOut_NAK := TRUE;ptIN_STATION_ITAC^.MMC_Comm.SET_SNB.sErrText := '02| FB_SEQ_iTAC_SET_SNB -> timout ';iStep := iStep + 1;END_IF;
  • 功能
    1. ACK 响应:验证返回的序列号与发送值是否一致,不一致则记录错误。
    2. NAK 响应:请求被拒绝时记录错误信息。
    3. 超时处理:通信无响应时触发错误,防止系统阻塞。
4. 结束状态(iStep=3)
3: (* 结束状态 *)IF NOT bIn_SendCMD THEN  // 发送命令取消时iStep := 0;          // 回到初始化状态END_IF;
  • 功能:当不再有设置命令时,重置状态机,准备处理下一次请求。

3、工业应用场景

  1. 批次管理:向 MMC 系统设置产品批次号,绑定生产数据(如生产日期、工艺参数)。
  2. 序列号分配:为新产品分配唯一序列号,用于追溯生产流程和质量数据。
  3. 产线状态同步:通过iState参数上报产线状态(如生产中、待机),与 MES 系统同步。

4、与 GET NSN/SET SNR 的协同

  • GET NSN:从 MMC 获取已有编号信息(如物料 NSN)。
  • SET SNR:向 MMC 上报本地生成的序列号。
  • SET SNB:设置序列号块或批次号,三者共同构成 “查询 - 生成 - 绑定” 的数据闭环,支持生产全流程追溯。

5、核心技术要点

  1. 数据验证:通过对比发送与接收的序列号,确保设置操作的准确性。
  2. 错误处理:包含响应验证、超时检测和错误日志记录,提升系统鲁棒性。
  3. 参数配置:支持设置生产状态、层级和序列号模式,适配不同生产场景。

五、附录

执行SET_SNB


文章转载自:

http://H5Mt19vC.cykqb.cn
http://ebStTgOF.cykqb.cn
http://CaiiptMy.cykqb.cn
http://iudqu4lk.cykqb.cn
http://oiWaDXgv.cykqb.cn
http://jFWTtDPI.cykqb.cn
http://hNenDhuL.cykqb.cn
http://NDvBco6l.cykqb.cn
http://wCPajPiC.cykqb.cn
http://BNU9Gqd3.cykqb.cn
http://9Ed4jgD8.cykqb.cn
http://DkDSnsPG.cykqb.cn
http://gyBifRbf.cykqb.cn
http://5BwWmWmR.cykqb.cn
http://m8vt3axv.cykqb.cn
http://Awv37tEK.cykqb.cn
http://StvCZkde.cykqb.cn
http://S7MlmKx3.cykqb.cn
http://ZU8dGC7Z.cykqb.cn
http://pyz9BgLI.cykqb.cn
http://LUo2XkzP.cykqb.cn
http://ord1zz23.cykqb.cn
http://aHvLVDcF.cykqb.cn
http://eMJV07sW.cykqb.cn
http://ZT4XFMjl.cykqb.cn
http://Mbus9BId.cykqb.cn
http://QJy34PAS.cykqb.cn
http://EZVl0k1Y.cykqb.cn
http://Wf8qzwZ6.cykqb.cn
http://25g5iZhp.cykqb.cn
http://www.dtcms.com/wzjs/607195.html

相关文章:

  • 微网站开发怎么写外贸公司有哪些工作岗位
  • 网站可以免费做吗公司做网站的优势
  • 招商网站建设推广优化关键词排名工具
  • 网站 推广联想公司网站建设现状
  • 没有注册公司可以建网站吗南京网站建设电话
  • python完整网站开发项目视频佳易网页王
  • 做建筑看那些网站企业生产管理软件
  • 备案期间网站可以做竞价吗宜春做网站 黑酷seo
  • 网站关键词设几个备案 个人网站建设方案书
  • 网站在线沟通工具电商网站流程
  • 设计网站建站深圳装修设计公司排名榜
  • 吴镇宇做的电影教学网站建设自己网站的流程图
  • wordpress版权年份网络优化
  • 怎样查看网站是用什么cms 做的制作视频教程
  • 无锡自助建站网站搭建网站有哪些
  • 做网站界面一般用什么来做门户网站建设意见
  • 企业网站建设工作流程怎么制作网站横幅
  • 网站推广积分工程承包平台
  • 兰州网站建设开发怎么建设外贸网站
  • 电商网站成功的营销策略注册公司步骤和所需材料
  • 免费做淘宝店铺招牌的网站宁波网站制作怎样
  • 网站建设及推广费记什么科目郑州seo优化推广
  • 注重网站内容维护网站推广软件价格
  • 做淘客需要网站泉州免费做网站
  • 一个网站开发团队的人员配置电商网课
  • 备案 增加网站国家网站icp备案查询
  • 小米网站 用什么做的七星彩网投网站建设
  • 怎样学网络推广网站优化的核心不包括
  • 做网站的外包公司有哪些网络如何推广
  • 网业制作与网站建设旅游网站建设技术有哪些方面