字符串在PLC内的组织及连续采集

字符串是计算机编程的基本主要数据类型,很少有不直接支持字符串的高级语言。由于字符串比数字更接近自然语言,因此,其复杂性也更高,要注意长度、编码格式等信息。即使是高级语言,简单处理字符串的指令(格式化输出、内容匹配等)也很复杂,更别说语义理解了(那需要人工智能和复杂计算)。

随着生产信息化需求的提高,很多地方要求PLC能处理字符串,比较典型应用场景:物料跟踪时,一些说明信息会随着物料在工位间进行迁移,以便通过HMI设备给操作人员必要的指示。这些信息如果从MES等上位设备实时下传给L1的每个HMI是比较复杂,远不如在投料时,就交给PLC随着物料迁移而迁移来得方便。另外,有些设备通讯也是将信息转字符串格进行的。因此,字符串处理也必然成了PLC的基本功。

不同于其他数据类型,字符串是变长的。因此,PLC必须为每个字符串变量确定起始位置、长度(结束位置)信息。不同PLC的处理方式是不同的,西门子PLC将长度信息放置在起点,这样读取时就能事先知道长度,而不需要读很多无用的信息。三菱、倍福等PLC则是在字符串内容后面设置结束标志位,这种情况下,外部读取字符串就比较麻烦了,要尽可能多读,寻找结束标志,再扔掉后面无用的内容,通讯的代价会高不少。

由于字符串的长度不固定、编码格式复杂、很难波形展示等原因,录波软件PLC-Recorder刚推出时,是不支持字符串的。但是,一位网友却要用它去记录PLC的字符串内容,协助进行料流调试,在当时的情况下,他只能一个字节一个字节地录波,然后自己再反算出ASCII字符,我看着很难过,先帮他开发了临时替代方案,后来就决定直接支持字符串录波。

下决心后,就要开始实施,由于原来软件是为固定长度变量设计的,现在要变长,变量建立、变量存储、缓冲、内容指示、内容存储、内容搜索等等各个方面都要进行变动,软件再次进行了小规模的重构,各个模块都要调试一遍。新版本推出时,只是简简单单说了一句“支持字符串变量”,其含义却是沉甸甸的。希望,新的功能能帮助工控朋友们更方便、更快乐地工作!

字符串在PLC内的组织及连续采集

字符串在PLC内的组织及连续采集

字符串在PLC内的组织及连续采集

 

2020年11月10日


PLC-Recorder是一个国产专业数据采集和记录小软件,可以进行数据的连续记录、协助故障追踪、协助调试等功能。目前支持:西门子S7全系列、三菱、欧姆龙、基恩士、倍福、罗克韦尔(AB)、施耐德、松下、所有符合Modbus-TCP协议的国内外PLC及I/O设备。欢迎广大工控朋友去官网下载试用(免费版的功能强大),多提宝贵意见,促进它不断改进提高!