DALI_SEND_CMD可以将用户定义的命令发送到 DALI 总线并接收命令的响应消息。该函数块不解释输入命令代码,而是将命令直接发送到 DALI总线。用户可以发送根据DALI 标准定义或由设备制造商定义的命令。参数下表显示了函数块的参数:参数 声明 数据类型 存储区说明SEND 输入 BOOL I, Q, M,D, L 或常数在上升沿发送 DALI 命令。CMD_CODEDWord I, Q,M,D, L 或常数DALI 命令的位流CMD_BIT_LENUSInt I, Q, M,D, L 或常数DALI 命令的位长度。仅16 位和 24 位有效。SEND_TWICEBOOL I, Q, M,D, L 或常数SEND_TWICE = 1:发送两次DALI 命令。WAIT_RESPBOOL I, Q, M,D, L 或常数• WAIT_RESP = 0:不要等待响应。发送DALI 命令后将DONE 立即置 1。• WAIT_RESP = 1:等待命令的响应。当 CM 1xDALI 接收到响应字节时,将DONE 置 1,响应字节显示在“CMD_ACK”中。CM_DALI 输入输出 "DALI_CTRL"DALI_CTRL的数据块指定与当前函数块通信的 CM1xDALI。BUSY 输出 BOOL I, Q, M,D, L状态参数:• BUSY =0:作业处理过程终止。• BUSY = 1:作业仍在继续。ACTIVE BOOL I, Q, M,D, L状态参数:• ACTIVE= 0: 作业尚未开始。• ACTIVE = 1: 作业正在执行。DONE BOOL I, Q, M,D, L状态参数:• DONE= 0:作业尚未开始或仍在执行。• DONE = 1:作业无误执行。编程5.4 寻址函数块ET 200SP 通信模块 CM1xDALI (6ES7137-6CA00-0BU0)34 设备手册, 06/2019, A5E46959469-AA参数 声明数据类型 存储区 说明ERROR BOOL I, Q, M,D, L状态参数:• ERROR = 0:未发生错误。• ERROR =1:处理期间发生错误。STATUS BYTE I, Q, M,D, LERROR = 0 时,STATUS 具有以下三个值:•16#00:空闲• 16#01:正在执行• 16#7F:已完成ERROR = 1 时,STATUS显示详细的错误代码。有关每个错误代码的详细含义,请参见“参数STATUS (页 122)”。CMD_ACKBYTE I, Q,M,D, LWAIT_RESP = 1 时,此函数块成功完成并显示已发送命令的响应字节。5.4寻址函数块寻址函数块用于分配短地址、标识设备、更改短地址或查询 DALI 设备的地址状态。5.4.1DALI_DEV_SCAN说明DALI_DEV_SCAN 用于通过随机地址扫描总线上的 DALI 设备(控制装置或输入设备)。DALI设备的地址状态保存在 CM 1xDALI 中(请参见数据流路径 4 (页24))。如果设备的短地址唯一,则设备保留其短地址。如果设备没有短地址或其短地址不唯一,则系统会为其分配一个新的短地址。搜索一个设备大约需要6 秒钟。如果总线上有 64 个或更多设备,则需要 6 分钟以上。此函数块只能扫描 64 个设备,因此,如果 DALI总线上的设备数超过 64个,则每个周期的结果都会变化,从而导致该结果在每个过程后都不确定。可以通过函数块DALI_DEV_ (页 40)查询结果。说明仅当 CANCEL 和 SCAN 均置 0 时,输出才会复位。编程5.4 寻址函数块ET 200SP 通信模块 CM1xDALI (6ES7137-6CA00-0BU0)设备手册, 06/2019, A5E46959469-AA35参数下表显示了函数块的参数:参数 声明 数据类型 存储区 说明SCAN 输入 BOOL I, Q, M,D, L或常数在上升沿开始扫描程序。DEV_TYPEUSInt I, Q, M,D, L 或常数选择设备类型:• 1:控制装置•2:输入设备(传感器)ADDRESSUSInt I, Q, M,D, L 或常数选择已扫描设备的地址信息:• 0 到63:扫描一个短地址,该地址通常用于解决短地址冲突。• 253:仅扫描未寻址的设备。• 255:扫描所有设备。CANCEL BOOLI, Q, M,D, L 或常数CANCEL = 1:停止当前扫描过程,并返回错误。CM_DALI 输入输出"DALI_CTRL"DALI_CTRL 的数据块指定与当前函数块通信的 CM1xDALI。BUSY 输出 BOOL I, Q,M,D, L状态参数:• BUSY = 0:作业处理过程终止。• BUSY = 1:作业仍在继续。ACTIVE BOOL I, Q,M,D, L状态参数:• ACTIVE = 0: 作业尚未开始。• ACTIVE = 1: 作业正在执行。DONE BOOL I,Q, M,D, L状态参数:• DONE = 0:作业尚未开始或仍在执行。• DONE = 1:作业无误执行。ERROR BOOLI, Q, M,D, L状态参数:• ERROR = 0:未发生错误。• ERROR = 1:处理期间发生错误。编程5.4寻址函数块ET 200SP 通信模块 CM 1xDALI (6ES7137-6CA00-0BU0)36 设备手册, 06/2019,A5E46959469-AA参数 声明 数据类型 存储区 说明STATUS BYTE I, Q, M,D, LERROR = 0时,STATUS 具有以下值:• 16#00:空闲• 16#01 到 16#40:扫描设备。当 CM 1xDALI扫描设备时,该值将递增。• 16#41:分配短地址。• 16#42:更新地址状态。• 16#7F:已完成ERROR = 1时,STATUS 显示详细的错误代码。有关每个错误代码的详细含义,请参见“参数 STATUS (页 122)”。5.4.2DALI_DEV_IDENTIFY说明DALI_DEV_IDENTIFY 用于识别设备。如果控制装置不支持 DALI 命令IDENTIFY,则此功能提供一种闪变方法,通过将级别交替设置为Zui大值和Zui小值来识别设备。说明仅当 CANCEL 和 IDENTIFY均置 0 时,输出才会复位。
参数下表显示了函数块的参数:参数 声明 数据类型 存储区说明IDENTIFY 输入 BOOL I, Q, M,D, L 或常数在上升沿识别设备。DEV_TYPEUSInt I, Q,M,D, L 或常数选择设备类型:• 1:控制装置• 2:输入设备(传感器)GROUP BOOL I, Q, M,D, L或常数指定控制装置的短地址或组地址:• GROUP = 0: ADDRESS 指示短地址或广播。• GROUP = 1:ADDRESS 指示组地址。ADDRESS USInt I, Q, M,D, L 或常数识别 CM 1xDALI的地址信息。GROUP = 0 时, ADDRESS指示短地址或广播:• 0 到 63:指定设备的短地址• 253:广播未寻址的设备•255:广播所有设备GROUP = 1 时, ADDRESS指示组地址:• 0 到 15:组地址FLICKER BOOL I, Q,M,D, L 或常数指定识别过程的类型:• FLICKER = 0:通过 DALI 命令 IDENTIFY识别设备。识别过程由制造商指定。• FLICKER =1:通过设置级别使控制装置闪变来识别设备,仅对控制装置有效。识别后,将控制装置的级别设为“MIN_LEVEL”。CANCEL BOOLI, Q, M,D, L 或常数CANCEL = 1:停止当前识别程序,并返回错误。编程5.4 寻址函数块ET 200SP 通信模块CM 1xDALI (6ES7137-6CA00-0BU0)38 设备手册, 06/2019, A5E46959469-AA参数 声明数据类型 存储区 说明CM_DALI 输入输出 "DALI_CTRL"DALI_CTRL 的数据块指定与当前函数块通信的CM1xDALI。BUSY 输出 BOOL I, Q, M,D, L状态参数:• BUSY = 0:作业处理过程终止。• BUSY =1:作业仍在继续。ACTIVE BOOL I, Q, M,D, L状态参数:• ACTIVE = 0: 作业尚未开始。• ACTIVE= 1: 作业正在执行。DONE BOOL I, Q, M,D, L状态参数:• DONE = 0:作业尚未开始或仍在执行。•DONE = 1:作业无误执行。ERROR BOOL I, Q, M,D, L状态参数:• ERROR = 0:未发生错误。•ERROR = 1:处理期间发生错误。STATUS BYTE I, Q, M,D, LERROR = 0 时,STATUS有以下三个值:• 16#00:空闲• 16#01:正在执行• 16#7F:已完成ERROR = 1 时,STATUS显示详细的错误代码。有关每个错误代码的详细含义,请参见“参数 STATUS (页 122)”。5.4.3DALI_DEV_CHG_ADDR说明DALI_DEV_CHG_ADDR用于更改一个设备的短地址。如果将新地址分配给另一个设备,则两个设备交换其短地址。此函数块仅更改物理设备的短地址。CM 1xDALI中的数据不受该短地址更改的影响(请参见数据流路径 5 (页 24))。参数下表显示了函数块的参数:参数 声明 数据类型 存储区说明CHANGE 输入 BOOL I, Q, M,D, L 或常数在上升沿更改特定设备的短地址。DEV_TYPEUSInt I, Q,M,D, L 或常数选择设备类型:• 1:控制装置• 2:输入设备(传感器)OLD_ADDRBOOL I, Q, M,D, L或常数设备的当前短地址。NEW_ADDRUSInt I, Q, M,D, L 或常数要分配给设备的短地址。CM_DALI 输入输出"DALI_CTRL"DALI_CTRL 的数据块指定与当前函数块通信的 CM1xDALI。BUSY 输出 BOOL I, Q,M,D, L状态参数:• BUSY = 0:作业处理过程终止。• BUSY = 1:作业仍在继续。ACTIVE BOOL I, Q,M,D, L状态参数:• ACTIVE = 0: 作业尚未开始。• ACTIVE = 1: 作业正在执行。DONE BOOL I,Q, M,D, L状态参数:• DONE = 0:作业尚未开始或仍在执行。• DONE = 1:作业无误执行。ERROR BOOLI, Q, M,D, L状态参数:• ERROR = 0:未发生错误。• ERROR = 1:处理期间发生错误。编程5.4寻址函数块ET 200SP 通信模块 CM 1xDALI (6ES7137-6CA00-0BU0)40 设备手册, 06/2019,A5E46959469-AA参数 声明 数据类型 存储区 说明STATUS BYTE I, Q, M,D, LERROR = 0时,STATUS 有以下三个值:• 16#00:空闲• 16#01:正在执行• 16#7F:已完成ERROR = 1 时,STATUS显示详细的错误代码。有关每个错误代码的详细含义,请参见“参数 STATUS (页 122)”。5.4.4DALI_DEV_说明DALI_DEV_ 用于查询 DALI 总线的地址信息。● 将输入DET_ALL 设置为 0 时,FB 将查询直接保存在 CM 1xDALI 中的地址信息(请参见数据流路径 2 (页 24))。●将输入 DET_ALL 设置为 1 时,FB 会检测总线上的所有设备,然后返回Zui新的地址信息(请参见数据流路径 4 和数据流路径 2(页 24))。CM 1xDALI 通过后台检测 (页 22)循环查询总线上 DALI 设备的所有地址状态,并检测以下结果:● 每个DALI 设备是否都具有短地址● 对于控制装置:检测基本状态、控制装置类型和 EXT_STATUS 的信息●对于传感器:检测设备状态、NUM_OF_INST 和各实例类型的信息这些结果保存在 CM 1xDALI 中(请参见数据流路径 4 (页24))。说明仅当 CANCEL 和 QUERY 均置 0 时,输出才会复位。