n
1问题描述n
一个PLC站的FB,DB,FC,UDT是通过多个SCL源生成的,如下:n
n
图1-1 多SCL源程序n
其中共享DB中用到了UDT类型,在编译时可选择先编译UDT的SCL源,再编译共享DB的SCL源,编译成功。n
而在‘一致性检查‘的编译中报措:n
图1-2 编译错误信息n
错误信息:DB中数据类型为UDT的时间戳与逻辑块接口的时间戳不一致。n
2问题原因
在‘一致性检查‘的全部编译过程中,会将所有的源程序再编译一次,而编译的顺序取决于源文件名称:n
图2-1 ‘一致性检查‘窗口中源文件排列n
造成先编译生成DB,后编译生成UDT,产生时间戳问题。n
3解决办法
为解决此问题,可按照需要修改SCL源文件的名称使UDT的SCL源文件排在DB的SCL源文件的前面。n
图3-1 修改后的SCL源文件
‘一致性检查’窗口的编译顺序发生变化:
图3-2 修改后的编译顺序
全部编译结果:无错误
图3-3 编译无错误信息
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc328877.html