问题
我正在使用Visual Studio,C#和.NET。我也在使用ZPL命令向Zebra ZD500R打印hello world。我目前还没有成功地弄清楚如何使用上述方法对RFID标签进行编码。我知道存在适用于Java的SDK,但我的环境是严格的Microsoft堆栈。
打印的RFID标签在整个标签上印有VOID。像VOIDVOIDVOIDVOIDVOIDVOID之类的东西。我已在下面添加了更新的代码。
代码
以下是我在研究Zebra文档和示例代码后编写的以下代码:
public static void PrintLabels()
{
try
{
string ipAddress = "127.0.0.1";
int port = 1337;
// ZPL Command(s)
string ZPLString =
"CT~~CD,~CC^~CT~" +
"^XA~TA000~JSN^LT0^MNW^MTT^PON^PMN^LH0,0^JMA^PR4,4~SD10^JUS^LRN^CI0^XZ" +
"^XA" +
"^MMT" +
"^PW300" +
"^LL0526" +
"^LS0" +
"^FT267,433^A0I,42,40^FH\\^FDHello World^FS" +
"^RS8" +
"^RFW,H^FD1234^FS" +
"^PQ1,0,1,Y^XZ";
// Open connection
System.Net.Sockets.TcpClient client = new System.Net.Sockets.TcpClient();
client.Connect(ipAddress, port);
// Write ZPL String to connection
System.IO.StreamWriter writer =
new System.IO.StreamWriter(client.GetStream());
writer.Write(ZPLString);
writer.Flush();
// Close Connection
writer.Close();
client.Close();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
这是一个基本的例子,但通过打印你好世界的诀窍。据我所知,我认为RFID编码方面应该是字符串ZPLString中的新行。不幸的是,当我查看Zebra编程书时,我没有看到任何ZPL命令来确认这个想法。
尝试
我已尝试解决此问题。
任何建议,提示或评论都将深表感谢。
答案 0 :(得分:1)
一些注意事项 -
查看第381页(表18),了解与该打印机兼容的命令列表。
第400和401页包含一些写作示例。第一个是:
^XA
^RS8
^RFW,A^FD00 my data^FS
^XZ
让我们剖析一下。 ^ XA(开始)和^ XZ(结束)。加上另外两个:^ RS和^ RF。
^ RS - 设置RFID参数
UHF Printers 0 = None 1 = EPC Class 0 2 = EPC Class 0 Plus 3 = EPC Class 1 64-bit 4 = EPC Class 1 96-bit 5 = UCODE EPC 1.19 6 = Impinj Class 0 Plus 7 = ISO 18000-06A 8 = EPC Class 1, Generation 2 (Gen 2) 9 = ISO 18000-06B
不确定您使用的是哪个转发器。相应调整。
然后就是^ RF:读取或写入RFID格式。 在这个例子中,他们以ASCII(^ RFW,A)
进行写操作接下来,我们看到
^FD00 my data^FS
哪个是数据的开始和结束标记。
另一个例子,这次写十六进制:
^XA
^RFW,H^FD1234^FS
^XZ
您看到,H
使用的是,A
,而不是^XA
^FO10,10
^A0,100,150
^FDHello, World!^FS
^RS8
^RFW,H^FD1234^FS
^XZ
。我们再次看到^ FD和^ FS分隔数据。
摘要......
我猜你想要这样的东西(让我们假设你正在写十六进制):
string ZPLString = "^XA^FO10,10^A0,100,150^FDHello, World!^FS^RS8^RFW,H^FD1234^FS^XZ";
所以,在c#:
^RS
您可能需要投入|MatId | BaseId |Flag|Pkg1| CS1
--------------------------------
|3001 | 3001 | 1 | 20 | 2 |
|3002 | 3001 | 0 | 15 | 3 |
|3003 | 3001 | 0 | 10 | 4 |
并离开上图。
发送命令字符串时,您不需要添加任何额外的换行符或CR。
std_disclaimer:我只使用ZPL进行打印,而不是使用RFID编码。确保您拥有适用于此设备的正确发送应答器。根据文档,它支持与UHF EPC Gen 2 V1.2 /兼容的标签 ISO 18000-6C。
我会首先使用Zebra的实用程序测试你的ZPL。如果有效,则开始使用c#播放。只是试图限制变量的数量;)