随着信息化水平的不断提升,实际生产运行过程中,各类PLC不可避免地需要应对字符信息的应用场景,这种需求日益凸显,对于提高生产效率和数据管理的精准性至关重要。考虑到国内环境的需求,中文字符串的支持也成为项目改造和应用的重要环节。一些报警信息和事件如果可以通过中文字符串的形式展现出来,对工业现场的操作人员和运维人员来说将大大提高协同效率。
下面我们就以西门子1200/1500系列PLC为例介绍一下KEPServerEX如何读取西门子PLC的中文字符串数据。
对于西门子的S7-1200、S7-1500,有string和wstring两种字符串数据类型。那么这两种有什么区别吗?
一、
string一般针对ASCII编码格式,是以字符(char)数组的形式表示,支持空间是256字节。首字节和第二字节记录的是分配长度和实际长度,所以实际的数据有效长度是254字节。
二、
wstring一般针对unicode编码格式,是以宽字符(wchar)数组的形式表示,支持空间是256个宽字符,也就是256*2=512个字节。跟string类型一样,在plc中前两个wchar记录的事分配长度和实际长度,最终实际有效数据长度为254*2=508字节。
由于编码格式的不同,ASCII编码一共规定了128个字符编码,不在这范围内的符号就会显示乱码。而unicode几乎包含了全部的符号,每一个符号都有一个对应的编码,包括中文汉字在内。
在了解了这些之后,相信大家对如何读取西门子PLC中的中文字符已经有了一定的思路和方向。这些了解将为您在实际应用中处理中文字符数据提供有力的支撑和参考。
当前KEPServerEX的Siemens和Siemens Plus驱动不支持unicode编码,所以无法直接读取到中文字符串数据。需要使用到OPC UA驱动才可以。
这样需要在PLC中开启OPC UA接口,并且将中文字符串数据类型改为wstring,在KEPServerEX中通过OPC UA Client驱动进行读取