用c#做西门子840Dsl HMI的二次界面开发,报警模块有用西门子的订阅列表方法(Subscribe(AlarmList))将报警显示在文本框中,但是还有一部分是要自己定义的,报警源和报警文本都设置好了,但是显示不出汉语报警文本(显示出来的好像是乱码的那种),英语文本的可以显示,有大神知道该怎么处理吗?
最佳答案
比如
西门子840DSL PLC的700000号报警,报警文本无法显示。此问题我在利用840DSL改造数控铣床时遇到过,按照以下方法解决:
1.700000号报警的触发位是DB2.DBX180.0,在plc的Status表中检查是否被触发,(非常重要),
2.如以上正常,从西门子HMI的/siemens/sinumerik/hmi/template/lng.目录下拷贝名为"oem_alarms_deu.ts"的文件到计算机上,将文件改名为oem_alarms_plc_chs.ts,其中文件名最后三个字母deu表示是德语报警,eng表示是英文报警,chs表示是
中文报警。
打开oem_alarms_plc_chs.ts(注意一定要用支持中文编码的编辑器如UltraEdit-32,若不支持则显示报警为乱码,---非常重要,)
3.编写完报警文本(注意格式正确),保存文件时,注意下面两项:
换行符:DOS换行符 - CR/LF
格式: UTF - 8
以上两项非常重要,
4.将编辑好的文件拷贝到系统/oem/sinumerik/hmi/lng目录或者/user/sinumerik/hmi/lng目录下。
让HMI重新上电。注意:系统会在相应目录下创建出oem_alarms_plc_chs.qm的文件,即文件名相同,但后缀名为qm的文件。若没有生成qm文件,报警文本肯定无法显示出来。
西门子数控 840D SL MYHMI WINCC V13 配置手册 中文超清版
http://www.gkbc8.com/thread-1816-1-1.html
提问者对于答案的评价:
我是接直用记事本打开ts文件,然后将里面的报警文本修改成汉语的,之后保存,打开HMI运行后发现也生成了qm文件,但是软件上显示的汉语乱码,对ts文件打开必须要用规定的编辑器编辑吗?
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc302553.html