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编码表节选如下:
-
寄存器
+关注
关注
31文章
5342浏览量
120328 -
plc
+关注
关注
5011文章
13290浏览量
463263 -
触摸屏
+关注
关注
42文章
2304浏览量
116176
原文标题:M580和GXU进行中文汉字通讯的实验
文章出处:【微信号:SE_AUT,微信公众号:自动化小天地】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论