请问我在网上下载到GSSM331T2EN.awl,编译出错,无法导出OB40,OB82,FC1,DB1,DB2有谁试过编译这个源文件么,知道为什么会出错么?请看附图。
如果真是无法编译的话,那么使用6ES7 331-7KF02-0AB0模拟量模块的时候,OB40,OB82,FC1,DB1,DB2中应该编写怎样的程序呢,作用是什么,请指教,谢谢!
问题补充:
我又看了一下编译结果,有 m_of 这个标号,试了好几次就是编译不成功,编译不了就算了,程序可以自己写,只是我不懂应该怎样写,其实我想知道的主要是:
使用6ES7 331-7KF02-0AB0模拟量模块的时候,OB40,OB82,FC1,DB1,DB2中应该编写怎样的程序。
具体的例如这样的问题:
(1)FC105,FC106应该放在OB40里还是放在OB82里,还是说放到任何一个用户插入的功能中都可以,FC105,FC106的使能端是不是应该和OB40中的那个位有关系。
手册《SM331-AI8x12位入门指南》中提到:如果使用具有诊断功能的模块且未插入 OB82,则发生诊断报警时,CPU 将更改为 STOP模式。
那么我插入了OB82后,应该在OB82中写什么样的程序,或是说应该在OB82中做些什么事,这是我不懂得地方,可以的话给我发个例程就好了,多谢!
我的邮箱是:<zy_197501@sina.com>
(2)我现在搞的这个控制系统中要用到PID控制,我下载了西门子的官方例程zEn26_04,编译成功了,就是怕用不上,可以的话再给我发个实际使用的PID程序是最好了,
这个要求可能有点过分,请见谅。哈哈
图片说明:
最佳答案
1、SPB <标号>:如果所比较的字有大于等于的情况,则跳转到标号处。
楼主给出的程序不完全。编译出错的可能原因是:
SPB指令所跳转的标号不存在,例如,SPB m-of,程序中应有“ m-of:”这样的标号,但这个标号不存在。
2、SPB指令例程:
例如:
L MW10// 将存储字MW10 的内容装入累加器1 低字。
L MW12// 将累加器1 低字中的内容装入累加器2 低字中。将存储字MW12 的内容装入累加器 1 低字。
>I// 检查累加器2 低字中的内容(MW10)是否大于累加器1 低字中的内容(MW12)。
SPB NEXT// 如果累加器2 低字中的内容(MW10)大于累加器1 低字中的内容(MW12),则跳转到 NEXT 跳转标号。
TAK// 交换累加器1 和累加器2 中的内容。
NEXT: -I// 从累加器1 低字的内容中减去累加器2 低字的内容。
T MW14// 将结果(=较大值减去较小值)传送到存储字MW14。
提问者对于答案的评价:
谢谢回答
最佳答案作者回复:
推荐看看下述文档:
《用Step7中SFB41/FB 41、SFB42/FB42、SFB43/FB43实现PID控制 》下载:
http://www2.ad.siemens.com.cn/Download/Upload/AS/application/A0018.pdf http://www.ad.siemens.com.cn/download/searchResult.aspx?searchText=fb41
《应用PID实现温度控制实例》:连接
http://jpkc.jingge.com/sc01/kecheng/userfiles/flash/shixunxiangmu10.swf
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc248506.html