恭喜,你发布的帖子
发布于 2018-05-11 11:00:25
37楼
这应该是西门子PLC的优点之一吧,用起来很舒服。举个最简单的例子变频器的控制字
1,通信的时候作为整个字进行传输
2,逻辑控制的时候,可以一个个bit单独控制,而不需要进行任何的拆箱装箱工作。
6,问你个问题,假如程序有100个报警,用M区存储可以采用名字为A001--A100,采用DB的话最简洁的就是"F".A001--"F".A100。当这些报警显示在HMI上的时候,现在的维护人员如果最快速在程序上找到这个报警的位置?假如用户使用的不是wincc,并不能直接从HMI跳转!
拿你上面的电机来说,不管什么项目,最基本的电机就是电机,没有不一样;
我会先做个UDT ,UdtMotor ,里面包含控制信息,状态信息,故障信息,电机IO所在的PN或者DP的诊断信息,相关控制参数;
使用UDT+DB的方式,我在程序里引用电机的某个状态,比如正向运行信号StStartedfwd。对我来说就是 ProcessLine1Motors.Motor1.StStartedfwd。这就是我对生产线1的1号电机的运行状态的引用,
我的结构化数据块很清晰,ProcessLine1Motors是个DB,Motor1是个UDT,我有100个电机,我就是Motor2,Motor3,它们的数据类型都是UdtMotor,而且TIA Portal Step7DB编辑器里面 都可以像EXCEL一样拉动操作了。
还可能 相同的第二条生产线在一个PLC控制,很简单复制下DB名称改成ProcessLine2,生产线2的100台电机控制所需的变量建好了。
用M 可以,如果标准化程序做的好,每个电机占用100个位,占用40 字节。全用M区,整个工厂200台电机,你看你用M区够不够,而且 这个工厂不大,用M区来定义这些位,你的符号表要建多少变量,因为M区不能建立复杂数据类型。
说了 这么多 我只是阐述 DB +UDT 以及Struct等组合的优势。
4,FC的out参数,如果程序内部不方便初始化,或者使用s/r,或者程序有跳转,用DB作为实参是会出问题的,而用m区不存在这个这个问题。
这问题始终无解?在CPU运行过程中M区和DB有何区别?不知坛里 其他同行有什么看法?FC的OUT参数在运行过程,要一直赋值,这是必要的。不能有跳转等不赋值的情况。
请填写推广理由:
分享
只看
楼主