有“贝”而“莱” 强势围观 | 在贝加莱PLC上实现ARTNET灯光控制协议 013

2021-11-05 15:21:25 浏览数 (1)

JZGKCHINA

工控技术分享平台

尊重原创 勿抄袭

勿私放其他平台

原创投稿

013

在贝加莱PLC上实现ARTNET灯光控制协议

陈 巍

一、DMX512协议

DMX512数据协议是美国舞台灯光协会(USITT)于1990年发布的一种灯光控制器与灯具设备进行数据传输的标准。它包括电气特性,数据协议,数据格式等方面的内容。

基于DMX512控制协议进行调光控制的灯光系统叫做数字灯光系统。目前,包括电脑灯在内的各种舞台效果灯、调光控制器、控制台、换色器、电动吊杆等各种舞台灯光设备,以其对DMX512协议的全面支持,已全面实现调光控制的数字化,并在此基础上,逐渐趋于电脑化、网络化。

一个DMX接口最多可以控制5l2个通道,因为电脑灯一般都有几个到几十个功能,所以。一台电脑灯需占用少则几个、多则几十个控制通道。

上图是一个电脑灯的26个通道分配。通道1-4对应色彩,通道5和6分别对应左右摇摆角度和俯仰角度。

一个512字节的DMX512报文,可以控制最多19个例子中的电脑灯,这在现代剧场中是远远不够的。所以ArtNet协议作为DMX512的扩展就应运而生。

二、ArtNet协议

ArtNet是一种灯光控制协议,ArtNet协议可看成传统DMX512数据与以太网数据的一座桥梁,通过支持ArtNet的设备, 将DMX512数据转成ArtNet网络数据,由于网络传输的快捷性和可连通性,ArtNet在灯光控制领域得到了广泛的应用,目前ArtNet的最新协议版本为ArtNet4。

ArtNet协议基于以太网UDP协议,所以只要可以收发UDP协议,理论上就能收发ArtNet协议,这比DMX512的实用性更广。

下图是ArtNet协议文档中的ArbDmx报文定义部分:

  • 报文的前8个字节是字符串”Art-Net”
  • 紧接着OpCode字段要设置位16进制的5000,表示这是一个ArtDmx报文。
  • 接着的ProtVerHi字段和ProtVerLo字段对应协议版本,这里按照说明分别给定数值0和14。
  • Sequence字段设置为0禁止报文顺序功能。
  • Physical字段目前没用。
  • SubUni和Net字段指定了Universe,也就是唯一的DMX512网络号码。
  • LengthHi和Length字段指定了DMX数据也就是Data字段的长度。

三、程序实现

例程实现了和电脑灯的通讯,电脑灯的地址和对应的DMX universe需要在电脑灯上手动设置,例程中起始地址为0,universe也为0。

变量声明:

  • number_of_channels设定DMX报文长度。
  • Data数组存储UDP报文数据,DMX_DATA数组存储DMX报文数据。

初始化代码:

  • ArtNet的指定UDP通讯端口是6454,所以UdpSend功能块目标端口应该设置为6454。
  • 例程中的IP地址2.182.48.43是电脑灯设置的IP地址。

循环代码:

END

0 人点赞