M580和GXU进行中文汉字通讯的实验

1.简介

触摸屏和PLC之间一般进行的是整形、浮点等数据类型的通讯,借助于标准ASCII编码表,触摸屏和PLC之间可以进行字母、数字及部分特殊符号的字符串型数据的通讯;同样,借助于标准汉字Unicode编码表,每个汉字对应上一个汉字编码,可以在触摸屏和PLC之间进行中文汉字的字符串型数据的通讯。

Unicode目前普遍采用的是UCS-2,它用两个字节来编码一个字符, 比如汉字”经”的编码是0x7ECF,注意字符编码一般用十六进制来 表示,为了与十进制区分,十六进制以0x开头,0x7ECF转换成十进制就是32463,UCS-2用两个字节来编码字符,两个字节就是16位二进制, 2的16次方等于65536,所以UCS-2最多能编码65536个字符。编码从0到127的字符与ASCII编码的字符一样,比如字母”a”的Unicode编码是0x0061,十进制是97,而”a”的ASCII编码是0x61,十进制也是97,对于汉字的编码,事实上Unicode对汉字支持不怎么好,这也是没办法的, 简体和繁体总共有六七万个汉字,而UCS-2最多能表示65536个,才六万 多个,所以Unicode只能排除一些几乎不用的汉字,好在常用的简体汉字 也不过七千多个,为了能表示所有汉字,Unicode也有UCS-4规范,就是用 4个字节来编码字符,不过现在普遍采用的还是UCS-2,只用两个字节来编码。

2. 主要软硬件

3. 实验过程简介

3.1 PLC中变量定义及赋值

使用UnityProV13.0软件,在PLC中定义一个WORD型数组,链接上%MW0寄存器,其中每一个数组元素数值对应一个汉字,对应规则参考标准汉字Unicode编码表,例如,查表得知汉字“施”对应的数值是65BD,调换高低字节(根据PLC品牌型号决定是否需要调换高低字节)转换成十进制数值是48485,将上述数组其中一个元素赋值48485,加上下述的触摸屏程序配置,触摸屏上就能显示“施”字了,同样“武”“汉”“耐”“德”几个字分别对应值26219、18796、4224、46943

3.2触摸屏程序配置

使用Vijeo Designer Basic 1.1软件,在导航窗口-变量中定义一个字符型型变量STRING01,链接上PLC中定义的地址%MW0,I/O管理器驱动程序ModbusTCPIP01属性栏字符串编码栏选择为Unicode

导航窗口-图形画面-基本画面-画面1上放一个字符串显示控件,链接上那个字符串变量STRING01,注意显示长度是否符合你要求

由于此功能用仿真软件联调即能实现,本文直接同时启用UnityProV13.0仿真及Vijeo Designer Basic 1.1设备模拟仿真运行即可看到结果,“武汉施耐德”五个汉字分别有不同的Unicode编码值与之对应,在PLC中输入相应数值就能在触摸屏上对应显示出来

4.小结

借助于标准汉字Unicode编码表,每个汉字对应上一个汉字编码,可以在触摸屏和PLC之间进行中文汉字的字符串型数据的通讯,如果要显示不是很多不同的汉字,可以利用触摸屏上的字符串输入功能进行反推,得到相应汉字的Unicode编码值,如果要显示很多不同的汉字,可以从汉字unicode编码表中查询到相应汉字的Unicode编码值进行转换。汉字unicode编码表推荐链接如下: https://blog.csdn.net/u010811143/article/details/51560246

本文示例用到的unicode编码表节选如下:

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180807G0IZX000?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券