技术论坛

 SivArc 探索一 标准化PLC编程(连载)

返回主题列表
作者 主题
iZhouSai
侠士

经验值: 1404
发帖数: 42
精华帖: 8
楼主    2020-07-10 15:27:17
主题:SivArc 探索一 标准化PLC编程(连载) 精华帖 

由于公司最近做的项目都是同样的,并且都采用S7-1500/S7-1200 与G120 系列做为主控系统,所以我一直在思考一个问题:如何标准化并且快速的编程调试。这样可以极大的缩短项目的调试周期,减少公司工程成本,同时也免去工程师在项目上做过多的重复劳动;

开题首先介绍一下SiVArc到底能帮助我们在项目中能够做什么事情。具体的演示通过下文的图文来跟大家说明;

 

可以看到图一的项目中只有一个PLC工程,并且OB1中只调用了一个"10007.G120无纺布设备"的FB块;


 

图二的步骤为在网络视图中添加一个②TP1200 Comfort HMI,并且将①处选择为 连接 连接类型选择为 HMI连接 ,然后通过拖拽的方式将HMI的以太网口连接到PLC的以太网口(此操作可逆),此时我们会看到③已经建立一个HMI连接,如果再去HMI的 连接 中查看会发现TIA已经为我们生成一个如③处一样的连接,且连接名称也相同;

 

由图三可见HMI的项目并未新建任何画面,到此下面就到见证奇迹的时刻了;


 

通过右键HMI工程选择 生成可视化(SiVArc)然后在下一级菜单中选择 生成可视化


 

此时会弹出一个窗口我们勾选HMI 和 PLC 然后点击生成按钮;


 

现在项目已经自动生成一个与图一中程序段1  "10007.G120无纺布设备"FB 块背景数据块名称相同的画面 ① 主螺杆 且画面的图标与以前有所不同,它的右下角会呈现一个 SiV 的字样。在此画面中会生成一个面板实例② 且此面板实例的接口③中均已经连接变量;此生成过程基本在10秒以内。

 

相信大家通过上述的图文已经明白SiVArc 到底能为我们做一个什么样子的工作,接下来为大家讲述一下想要实现 SiVArc 这样的功能我们要怎样去对PLC进行编程。



首先编程我们要养成良好的习惯,一个设备中有大于或等于三个以上的重复单元,我们就可以使用模块化的编程思路;例如有3个需要单按钮启停的星三角启动电机,如果们采用一个程序段一个程序段那样的去编写程序,那么程序的可读性就会很差,并且也加重了自身的工作量。

 

个人建议:在使用FB或者FC时我们对参数的命名也需要遵循一定的规范,不然在调试FB\FC的时候容易把自己看晕;

我就以AutoStart举例;

在Input,Output,InOut中采用的写法均为AutoStart。

在Static中采用的写法则为 _AutoStart。

在Temp中采用的写法则为 _autoStart。

在Constant中采用的写法则为 AUTOSTART。

 

实现SiVArc 对项目有一些要求,必须要保证项目中功能单元的重复度高,可以重复调用写好的某一个FB块,同时HMI界面也相似;

 

在我看来实现SiVArc 的FB块有三种做法:

第一种:直接使用FB块的背景数据块,但是这样有个缺陷不便于程序的规范化,所有与HMI连接的变量都是分布式的,所有的连接状态都只能去背景数据块中查看,如果项目使用的是SIEMENS HMI 与 SIEMENS PLC 则没有很大的问题,如果采用第三方的HMI则在做HMI的编程的时候就会非常繁琐;

 

第二种:在编写FB块的时候将FB块所需要连接到 HMI 的变量做成一个 PLC数据类型(UDT) ,同时在FB块的输入输出中新建此数据类型的参数①,之后新建一个HMIData 的DB块用于专门与HMI建立连接②,这样可以避免HMI连接的变量在程序中比较分散,便于查找与监控;


 

第三种:第三种与第二种有点类似,但是在写FB块的时候完全不要去考虑如何连接HMI ,只需要按照功能编写FB就可以了①,但是PLC数据类型这个步骤还是不能省略,之后同第二种一样新建一个HMIData 的DB块用于专门与HMI建立连接③;此时接FB块的接口上连接的就是 HMIData 中实例化的数据类型相应的地址;


 


了解了这三做法我们就依据第三种方式来做一个例子:

 

首先我们在程序块中新建一个FB块 名称就叫 11006.星三角电机 11006的前缀表示这个功能块号,同时这样做的好处为在程序文件夹下各个功能块能够依据前缀排序。

 

然后依据我上述的规范来新建各种参数,并且保证红色框线内的钩均已选中;

 

因为我们的FB块有些管脚是给硬件IO使用的所以我们在新建PLC数据类型的时候可以选择性的建立只在HMI上作用的参数,在建立的时候我们最好是多建立几个 Struct 以来区分各个接口功能。


 

然后我们再建立与HMI建立连接的DB块 HMIData 并且在此DB块内实例化刚才新建的 PLC数据类型,同样保证红色框线内的钩均已选中。

 

最后一步在OB1块中实例化 11006.星三角电机 并且给功能块的管脚连接上 HMIData或者 硬件IO 变量;

 

至此PLC编程这块的工作就已经完成,SivArc 探索二 将给大家演示如何制作HMI面板实例。

                                                                                                                                                     ZhouSai

2020.07.10

我的梦想 世界和平;上帝:??? 改变小企业行业现状;工控大佬:???
天芯
至圣

经验值: 18638
发帖数: 2092
精华帖: 0
1楼    2020-07-10 19:51:52
主题:回复:SivArc 探索一 标准化PLC编程(连载)

恩,内容的确不错

WOWUWUWU
至圣

经验值: 10349
发帖数: 1791
精华帖: 0
2楼    2020-07-10 21:11:25
主题:回复:SivArc 探索一 标准化PLC编程(连载)
思路不错,编程标准化很好。
手机用户20200103FZF48F
奇侠

经验值: 5658
发帖数: 764
精华帖: 1
3楼    2020-07-11 07:00:02
主题:回复:SivArc 探索一 标准化PLC编程(连载)

把不错做成标准化模块以后是不是可以适应所有需要的场景

WOWUWUWU
至圣

经验值: 10349
发帖数: 1791
精华帖: 0
4楼    2020-07-11 07:59:37
主题:回复:SivArc 探索一 标准化PLC编程(连载)

做成编程标准化以后就可以批量化的引用了

dnyr
侠士

经验值: 1368
发帖数: 109
精华帖: 0
5楼    2020-07-11 08:31:18
主题:回复:SivArc 探索一 标准化PLC编程(连载)

这个好啊,之前没接触过

学无止境
CoolCool的猪
至圣

经验值: 16693
发帖数: 1307
精华帖: 2
6楼    2020-07-11 19:29:07
主题:回复:SivArc 探索一 标准化PLC编程(连载)

下一季呢  等着呢  哈哈

同一个问题ID下,已经先回答此问题的人,如再参考我答案而修改自己答案的,就是王八蛋!
xiatianyun
侠圣

经验值: 4834
发帖数: 735
精华帖: 10
7楼    2020-07-11 23:23:11
主题:回复:SivArc 探索一 标准化PLC编程(连载)

mark!

谢谢分享,有空仔细看看。

一落千秋
侠士

经验值: 1850
发帖数: 69
精华帖: 0
8楼    2020-07-12 05:20:19
主题:回复:SivArc 探索一 标准化PLC编程(连载)
获取功能块实参变量。Parameters 能讲讲吗?
782523866
真的是偶尔
侠圣

经验值: 3666
发帖数: 166
精华帖: 2
9楼    2020-07-12 08:33:36
精华帖  主题:回复:SivArc 探索一 标准化PLC编程(连载)

感谢楼主分享!


说一点个人意见


如果是完全由HMI操控的情况下,标准化或者说模块式的编程时,最好还是不用UDT+ShareDB的方式;

在编写FB库文件时,就要遵循面向组件的思路,合理使用Inout、静态参数组合。


如果用到SiVarc,那肯定是西家的HMI了,

用SiVarc,个人推荐还是用多重FB背景数据块,合理勾选HMI可访问,可由SiVarc自动完成变量生成和画面icon的自动实参化,

如果用了ShareDB,画面icon的参数自动实参化功能弱化不少,似乎与SiVarc的初衷背道而驰了啊。


恕我直言,即使用非siemens的HMI,使用编写良好的多重FB也是很方便的,并不认为存在楼主说的第一种情况

iZhouSai
侠士

经验值: 1404
发帖数: 42
精华帖: 8
10楼    2020-07-12 13:44:00
主题:回复:SivArc 探索一 标准化PLC编程(连载)
官方的文档写的案例就是第二种UDT&shareDB,但是我觉得第二种跟我原来的库文件中的FB/FC有冲突,如果使用就需要更改我已经做好的库文件,我退而求次就使用第三种方法,况且第三种更加灵活,更适用于小型项目,且采用第一种方式遇到FC就得歇菜。这三种方式都是可以用的,我只是给大家提供思路,对于方便和不方便都是因具体对象而定。
我的梦想 世界和平;上帝:??? 改变小企业行业现状;工控大佬:???
不枉此生
侠圣

经验值: 4505
发帖数: 522
精华帖: 0
18楼    2020-07-26 08:47:33
主题:回复:SivArc 探索一 标准化PLC编程(连载)

首先感谢版主提供的标准化编程的思路,标准化其实逐渐在向面向对象编程的方向在走,对具体对象的封装抽象,可以避免重复编程,简化二次开发的难度等,接口的处理,标准化的命名,做好诸如此类的细节,可以使编程不再有难度

孜孜不倦,向高峰挺进!
空果仁
侠圣

经验值: 4925
发帖数: 210
精华帖: 47
19楼    2020-08-10 08:20:16
主题:回复:SivArc 探索一 标准化PLC编程(连载)

内容新颖,可以发表到这一期的西门子技术派,主要的内容是S7-300/400到S7-1500的移植和功能替代,新动能也是推荐的内容。参考链接:

http://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1633290&b_id=4&s_id=&num=14#anch

有机会赢取礼物和免费的线下交流与现场支持。

来自西门工业子技术支持 高级专家
李毫
侠圣

经验值: 2295
发帖数: 337
精华帖: 3
25楼    2020-09-04 14:52:59
主题:回复:SivArc 探索一 标准化PLC编程(连载)

编程标准化很好,能节约不少时间。

能不能不出差这么长时间啊
TKS_al
游民

经验值: 122
发帖数: 1
精华帖: 0
26楼    2020-09-04 15:48:09
主题:回复:SivArc 探索一 标准化PLC编程(连载)

cy 标准化

您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。