![]() |
有些产测解决方案(ATE),在执行产测功能测试后可能还需要打印出标签。内容简单的标签可以由产测软件来完成,但如果涉及到复杂内容的标签打印,可以由产测软件调用MES的在线列印接口,让MES来完成标签的打印。
MES在线打印程序支持第三方的调用,调用过程很简单,是一个DLL形式封装的StdCall函数,提供VB, Delphi, C++, C#范例。 产测程序调用接口函数传给MES产品主条码后,MES会继续完成打印工作,并执行包括数据逻辑检查,模板监控,打印防呆和数据追溯等等MES功能。
const DLLNAME3 = 'CloudMes_sdk_005.dll'; procedure mes_data_print(str:string); function mes_ret:string; implementation procedure _mes_data(warn:pchar;len:integer);stdcall; external DLLNAME3 name 'mes_data'; procedure _mes_print;stdcall; external DLLNAME3 name 'mes_print'; procedure _mes_data_print(warn:pchar;len:integer);stdcall; external DLLNAME3 name 'mes_data_print'; procedure _mes_ret(warn:pchar;len:integer);stdcall; external DLLNAME3 name 'mes_ret'; procedure mes_data_print(str:string); begin _mes_data_print(pchar(Str),length(Str)); end; function mes_ret:string; var buf:array[0..1000] of char; begin _mes_ret(buf,1000); result:=string(buf); end;
procedure TForm1.Button1Click(Sender: TObject); var s:string; i:integer; begin s:=formatdatetime('yyyymmddhhnnss',now); mes_data_print(s); // // i:=20; s:=''; memo1.Lines.Clear; while(i>0)do begin s:=mes_ret; memo1.Lines.Add('=>'+s); if(s<>'')then break; sleep(100); application.ProcessMessages ; i:=i-1; end; end;
Public Declare Sub mes_data_print Lib "CloudMes_sdk_005" (ByVal warn As String, ByVal slen As Integer) Public Declare Sub mes_ret Lib "CloudMes_sdk_005" (ByVal warn As String, ByVal slen As Integer) Public Sub mesprint(ByVal warn As String) Dim i As Integer i = LenB(warn) mes_data_print warn, i End Sub Public Function mesret() As String res$ = Space(1000) mes_ret res$, 1000 mesret = res End Function
Private Sub Command1_Click() Dim s As String Dim i As Integer Dim tick As Single s = Format(Now, "yyyyMMddHHnnss") mesprint (s) s = "" i = 0 tick = Timer While i < 10 And Len(s) < 5 s = Trim(mesret) Sleep 200 DoEvents i = i + 1 Wend Me.Label1.Caption = i & "==>" & s & "<==" End Sub
#ifndef _MES_H_ #define _MES_H_ #define MESAPI _declspec(dllexport) MESAPI void mes_data_print(char* Sn, int slen); MESAPI void mes_ret(char* Sn, int slen); #endif
#include "StdAfx.h" #include "mes.h" #includeMESAPI void mes_data_print(char* Sn, int slen) { HINSTANCE hInst = LoadLibrary(L"CloudMes_sdk_005.dll"); if(!hInst) { return ; } typedef void (__stdcall *MESAPI_DATAPRINT)(char* Sn,int slen); MESAPI_DATAPRINT proc = (MESAPI_DATAPRINT)::GetProcAddress(hInst,"mes_data_print"); proc(Sn,slen); ::FreeLibrary(hInst); return; }; MESAPI void mes_ret(char* Sn, int slen) { HINSTANCE hInst = LoadLibrary(L"CloudMes_sdk_005.dll"); if(!hInst) { return ; } typedef void (__stdcall *MESAPI_RET)(char* Sn,int slen); MESAPI_RET proc = (MESAPI_RET)::GetProcAddress(hInst,"mes_ret"); proc(Sn,slen); ::FreeLibrary(hInst); return; };
int _tmain(int argc, _TCHAR* argv[]) { char Sn[] = "1234567890"; printf_s("send: %s ",Sn); mes_data_print(Sn,10); getchar(); // char* ret = new char[1000]; mes_ret(ret,1000); printf_s("return: %s ",ret); getchar(); return 0; }
public class MESCALL { [ DllImport ( "CloudMes_sdk_005" ) ] public static extern void mes_data_print(string warn, int slen); [ DllImport ( "CloudMes_sdk_005" ) ] public static extern void mes_ret(StringBuilder warn, int slen); public MESCALL() { } }
private void button1_Click(object sender, EventArgs e) { string s=DateTime.Now.ToString("yyyyMMddhhmmss"); MESCALL.mes_data_print(s, s.Length); StringBuilder ret = new StringBuilder(255); int i=10; while (i > 0) { MESCALL.mes_ret(ret, 255); if (ret.Length > 5) break; Thread.Sleep(300); i = i - 1; } this.label1.Text = ret.ToString(); }
深圳全飞鸿科技 | www.nagomes.com | ![]() | 阅读3815次 |
关于我们: |
用软件定义企业 ,构建智能工厂!全飞鸿MES生产制造执行系统,助力智能制造。 全飞鸿MES生产制造执行系统,历经十余年创新与优化,致力满足、服务于各大制造行业,为客户提供定制化的MES解决方案,并向客户完全开放系统源代码,无限提升客户系统软实力。 |
有疑问,请联系! |
![]() |
http://www.nagomes.com |
syant@nagomes.com |
深圳龙华雪岗北路308号凤天创新科技产业园 |