1.SM1234模拟量模块输入档位的选择及数字量的对应计算。
根据数据手册,该型号的模拟量输入范围有:±10V、±5V和±2.5V,在应用过程中如何根据实际输入的电压选择档位?
在博途V14的“设备组态”界面,选中模拟量模块,在下方的“属性”进行电压档位的选择;
根据选择的档位进行对应数字量的计算。具体见以下两图。
注:通道0和通道1是一体的,通道2和通道3是一体的。
当模拟量输入电压远远大于当前的选择范围时,SM1234硬件模块对应输入通道显示灯变红,提示有error。
电压档位选择
数字量与电压对应关系
2.1s内对模拟量进行10次采集均值滤波时报错。
报错有两方面原因:
(1)稳定复现的报错。
原因:累加变量sum的数据类型为uint类型(双字节),当累加10次时会导致数据溢出,sum只保留了低16位的数,导致数值错误。
解决措施:将sum由uint改为duint类型,保证累加值不会因溢出而出错。
注:均值滤波的举一反三。
(2)作出以上更改后,计算均值仍会不稳定报错。
原因:10次模拟量采集的理论时间与实际运行时间是有差异的。以50ms为采集周期,理论上500ms可以完成10次采集,而实际上还有代码运行时间等误差,在500ms内无法完成10次采集(可能只采集了9次),导致计数变量count无法累加到10,也就无法在count==10时进行均值计算。
解决措施:将采集时间增大,在(采集周期*采集次数)的基础上再加上150ms作为滤波计算的时间周期。
3.板选和组选地址选择。
3-8译码器用于板选,放在低三位;4-16译码器用于继电器组选,放在高四位,具体如下:
组选→6543 210←板选
图示箭头顺序为数据计算从高位到低位,210为板选,6543为组选。
例如,2板第3组继电器为0010 100,0010(→,2表示第3组继电器),100(←,1表示第2块板卡)。
4.DB数据块里面的变量更改了,程序下载后运行时数据还是不会更新?
解决措施:将DB块变量中“保持”选项列取消勾选。
5.没有模拟电压输入(输入通道断路)的情况下,输入AIW116变量有数值,且为65536左右(2的16次方)。
原因:将AIW变量的数据类型设为了Uint。AIW116的档位是双极性的(无论是±2.5V到±10V),所以AIW变量的类型必须是有符号的(Int等)才可以。
解决措施:将10次滤波相关的变量全部更改为有符号的,包括AIW114、AIW116(Int),求和变量sum改为Dint的,Filter_Average改为Int类型。这样原本的65536最高位变成了符号位,约为0附近的负数。
6.如何保证模拟量输入电压不会过分溢出而导致出现红灯error?
解决措施:在模拟量输入通道前端添加钳位电路。
目前使用的电路中,AIW114钳位在0~5V,AIW116钳位在0~10V。注:档位选择不同,数字量和电压的对应比例也不相同。
7.HMI界面软件启动时,显示一堆系统报警信息,如何取消(续西门子HMI界面软件开发总结)?
结局措施:在HMI项目树下找到“全局画面”,在该画面中会出现较多的报警窗口,选定相应的报警窗口,仅在error前面打勾,warning前面不打勾。
属性界面