博途WinCC中如何使用摄像头控件监视多个实时设备视频的例子

文章内容

在最近的一个项目中,需要通过液压控制两个相距20米的液压缸同时推动一个巨型底座进行平移。两个液压缸之间距离较远目现场杂乱、噪音大,无法通过现场人员的有效沟通来确定液压缸的工作状态,因此就需要在控制系统中加入两个摄像头分别对准两个液压缸,现场操作人员通过屏幕上的摄像头视图加载的实时视频来观察两个液压缸的工作状态。

控制系统的上位机组态采用的是博途 WinCC V17,在博途 WinCC 中,提供了摄像头视图控件,可用于精智面板或 RT Advanced摄像头视图控件如下图所示:

图片[1]-博途WinCC中如何使用摄像头控件监视多个实时设备视频的例子
图1、博途WinCC中的摄像头视图控件

在博途的帮助文档中,经过官方测试的摄像头仅有少数,没有国内主流摄像头如海康、大华等摄像头的相关说明和数据,且大部分测试的摄像头帧率和分辨率非常低,远低于现在主流摄像头的画质。

图片[2]-博途WinCC中如何使用摄像头控件监视多个实时设备视频的例子
图2 部分经过官方测试的摄像头在摄像头视图中实现最佳显示的建议数据

通过帮助文档可以看到,精智面板虽然支持摄像头视图控件,但是解码能力有限。为测试摄像头视图在精智面板上的显示效果,我用公司库存的TP1200 Comfort 面板进行了测试,测试中使用了降低分辨率、更换编码模式或改变码流等方法,精智面板所显示的视频画面仍不够流畅、无法满足现场使用要求。因此后面实际运行上位组态时,直接使用了第三方触摸屏工控机+WinCCRTAdvanced 的方案。

在确定了方案之后,可按照以下两部分进行配置组态:

1、摄像头设置:

首先是打开摄像头本身的 RTP/RTSP 流协议,这里几乎所有主流摄像头都可以支持但每个厂家的配置方式不尽相同,在摄像头后台配置中即可找到相应的配置界面。这里不做详细展示。接下来就是选择编码格式,博途WinCC的摄像头视图控件支持的编码格式有 H264/MPEG4/MJPEG。目前比较主流的编码格式就是H264了,压缩率高,画面质量高。在本项目中我选择了 H264 编码格式。

经过反复测试,最终使用大华摄像头配合以下设置,可以在保证流畅显示的前提下,在WinCC RTAdvanced 中清晰的显示摄像头视频画面。

图片[3]-博途WinCC中如何使用摄像头控件监视多个实时设备视频的例子
图3、大华摄像头的参数配置

以上参数在不同厂家的摄像头中都可以进行设置,设置方法大同小异,这里设置的重点就是在保证最低可用分辨率(画面能足够清晰的显示所期望看到的视频内容)和帧率(帧率太低或太高都会导致视频画面卡顿,一般视频画面在低于24帧时容易出现卡顿)的前提下,调整画面质量。目前主流的摄像头中都支持智能编码和可变码流,我们可以开启智能编码功能,并启用可变码流,通过调整码流上限来减轻控制网络中的数据流量。

至此,摄像头端的配置完成。

2、博途 WinCC 组态配置:

在本项目中,需要通过旋钮来实现切换两个摄像头的视频画面,从而分别显示两个液压缸的工作状态,具体步骤如下:

首先我们建立两个变量,其中一个WString类型的内部变量用于存放摄像头的URL。再建立一个 Bool 类型的外部变量来获取PLC的状态值,根据该状态值在 WinCC RT Advanced 中控制两个摄像头视频画面的切换。该变量对应的是 PLC 中的一个数字量输入点,该数字量输入点外接旋钮开关的信号值(通过该旋钮开关控制画面中的视频切换)。如图4所示

图片[4]-博途WinCC中如何使用摄像头控件监视多个实时设备视频的例子
图4、所需变量的组态

接下来我们在摄像头视图属性中的摄像头URL变量处,关联刚才建立的用于存放摄像头 URL 变量的 WString类型的变量。在摄像头 URL 处填入需要默认显示的摄像头 URL,如图5所示。

图片[5]-博途WinCC中如何使用摄像头控件监视多个实时设备视频的例子
图5、摄像头视图的组态

这里摄像头 URL 处所填写的格式可参照图5,其中 admin 是摄像头的账户名,SDat8355 是摄像头账户的密码,192.168.0.108为摄像头IP地址。

以上步骤完成后,我们就可以通过仿真或将项目下载到工控机中,观察一下摄像头的显示效果,并根据实际显示调整摄像头视图的大小和位置以及摄像头图像参数。

3、VBS 脚本的调用

接下来通过VBS脚本实现两个不同摄像头之间视频画面的切换。首先在刚才建立的用于切换画面的 Bo0l变量处将其采集模式由循环操作改为循环连续,只有这样运行系统才会连续更新变量,如果需要变量变化时触发执行 VBS 脚本的动作就必须这样操作。

图片[6]-博途WinCC中如何使用摄像头控件监视多个实时设备视频的例子
图6、变量采集模式的设置

在博途中新建一个 VBS 脚本如图7所示。

图片[7]-博途WinCC中如何使用摄像头控件监视多个实时设备视频的例子
图7、摄像头画面切换脚本

图7的脚本在 PLC 对应数字量输入点为 False 时设置摄像头 URL 地址为 192.168.0.108,在输入点为 True 时,设置摄像头 URL地址为 192.168.0.109,从而实现视频画面切换。

最后,我们回到刚才建立的用于切换画面的 Boo!型变量处,在事件…数值更改处调用已编写完成的VBS 脚本-Changcamera,如图8所示

图片[8]-博途WinCC中如何使用摄像头控件监视多个实时设备视频的例子
图8、通过变量的数值变化调用脚本

小结:

以上就是通过外部旋钮实现博途 WinCC RT Advanced 中切换显示网络摄像头画面的全部步骤。

补充几点关于博途 WinCC RT Advanced 中使用摄像头视图的说明:

  1. 在运行系统中,一次仅可运行一个摄像机视图。也就是说,同一个画面中只能添加一个摄像头视图,无法同时显示两个摄像头画面,只能通过切换的方式实现两个或多个摄像头画面的显示。
  2. 由于精智面板的硬件性能有限,建议在 WinCC RT Advanced 中使用摄像头视图,博途WinCc Professional版本不支持摄像头视图,可以通过 Web Browser控件实现网络摄像头画面显示。
  3. 由于不同厂家摄像头参数不尽相同,相同参数下画面的延迟和清晰度也不尽相同,应在项目初期先对选型的摄像头进行实测,满足自己的需求后再实际应用。
  4. 摄像头视图控件只支持网络摄像头不支持USB摄像头,支持的流协议为 RTP/RTSP,支持的编码为 H264/MPEG4/MJPG。
  5. 若摄像头无法正确连接,请检查摄像头URL的格式、账户名、密码以及IP地址是否有误。

© 版权声明
THE END
喜欢就支持一下吧
点赞7 分享
评论 抢沙发

    暂无评论内容