一段话讲清 ESC/VP21
ESC/VP21 是爱普生的控制协议,而且它简单得让人舒服:纯 ASCII 文本,回车结尾。 没有校验和,没有起止帧字节,没有十六进制对照表。你用一个终端软件手敲就能控投影机。
更好的是,同一套指令在 RS-232、USB 和 TCP/IP 上通用。ESC/VP21 的定义与传输方式无关,所以你在串口线上验证通过的那条字符串,之后走网络发还是同一条——这在中控行业里是少见的便利,也是爱普生通常最好调的原因。
代价是:参数值会随机型世代变化。命令名(PWR、SOURCE、MUTE)是稳定的,但"哪个数字代表 HDMI"不是。
接线与针脚定义
爱普生投影机用标准 9 针 D-sub。接电脑要用交叉线(null-modem)——最经典的错误就是从包里随手抓了根直通线。
| 信号 | 投影机针脚 | 电脑针脚 |
|---|---|---|
| RD(接收) | 2 | 3 |
| TD(发送) | 3 | 2 |
| GND | 5 | 5 |
只有三根线有用。 如果手上只有直通线,加一个交叉转接头(null-modem adapter)即可。
笔记本没有串口时用 USB 转 DB9 没问题,但要注意 Windows 分配的 COM 号——换一个 USB 口,COM 号就会变。
串口参数
| 参数 | 值 |
|---|---|
| 波特率 | 9600(多数机型默认) |
| 数据位 | 8 |
| 校验位 | 无 |
| 停止位 | 1 |
| 流控 | 无 |
| 结束符 | CR(0x0D) |
有些机型菜单里可以选 19200 或 38400。没有特殊理由就留在 9600——中控系统的指令量极小,而低速率对长线路的容错更好。
冒号提示符:ESC/VP21 的握手方式
这一点最容易让从别的品牌转过来的人犯迷糊。
投影机准备好接收下一条命令时,会回一个冒号(:)。 冒号不是错误,也不是数值,它是提示符。
你发: PWR ON<CR>
投影机: :只按一个回车——所谓"空命令"——也会回一个冒号。这是最快的连通性测试:如果一个裸回车能换回冒号,说明你的线、COM 口、波特率全对,剩下的问题一定出在命令本身或投影机状态上。
协议规定的流控规则是:收到上一条命令的冒号之后,才发下一条。 如果等不了,就必须遵守手册中每条命令列出的执行时间。一口气连发五条命令而不等待的中控系统,正是"第一条生效、后面全没反应"的常见原因。
查询命令以 ? 结尾,先返回值,再返回冒号:
你发: PWR?<CR>
投影机: PWR=01
:指令参考
| 命令 | 作用 | 示例 |
|---|---|---|
PWR ON | 开机 | PWR ON |
PWR OFF | 关机 | PWR OFF |
PWR? | 电源状态 | 返回 PWR=00 … PWR=05 |
SOURCE xx | 切换输入 | SOURCE 30 |
SOURCE? | 当前输入 | 返回 SOURCE=30 |
MUTE ON / MUTE OFF | 消隐(黑屏) | MUTE ON |
MUTE? | 消隐状态 | — |
MSEL xx | 消隐画面颜色 | — |
VOL xx | 音量 | 步进参数 |
FREEZE ON / OFF | 画面冻结 | — |
ASPECT xx | 画面比例 | — |
CMODE xx | 色彩模式 | — |
LUMINANCE xx | 亮度 / 节能模式 | — |
HREVERSE | 水平翻转(背投) | — |
VREVERSE | 垂直翻转(吊装) | — |
LAMP? | 灯泡时数 | 返回 LAMP=1234 |
ERR? | 错误代码 | 正常时返回 ERR=00 |
电源状态取值
PWR? 是无人值守场景里最有用的一条查询,因为它能区分"开没开"这种粗判断分不出来的状态:
| 值 | 状态 |
|---|---|
00 | 待机(网络关闭) |
01 | 灯亮 —— 正常运行 |
02 | 预热中 |
03 | 冷却中 |
04 | 待机(网络开启 / 监控中) |
05 | 异常待机 |
运维上真正要紧的是 02 和 03。 正在冷却的投影机会拒绝开机命令,直到冷却结束。分不清 03 和 00 的中控系统,会在操作员关掉又马上开的时候,每次都报"开机失败"。
05 表示投影机异常自关机,接着发 ERR? 查原因。
输入源取值
SOURCE 接一个两位十六进制值。不同机型系列的映射不一样,下表只作为起点,请对照你那台机器的 ESC/VP21 手册确认:
| 值 | 典型输入 |
|---|---|
11 | Computer 1(模拟 RGB) |
21 | Computer 2 / BNC |
30 | HDMI 1 |
A0 | HDMI 2(双 HDMI 机型) |
41 | Video(复合) |
42 | S-Video |
52 | USB Display |
53 | USB-A / 媒体播放 |
80 | LAN / 网络 |
最稳的调试方法:用遥控器手动切到某个输入,然后发 SOURCE? 记下返回值。每个输入做一次,你就得到一份对这台机器绝对正确的映射表。
为什么你的爱普生命令没有回应
1. 菜单里没选 RS-232C。
Epson 的 ESC/VP21 指南要求在投影机菜单的高级设置里选择 RS-232C;具体菜单路径因机型而异,请查本机型的用户手册。(部分老机型菜单里还有 "Link 21L"——那是 USB 通信的选项,不是串口。)在此之前,端口物理上在,电气上被无视。
2. 待机状态限制了可用命令——这条最坑。
待机时爱普生投影机只接受一小部分命令,其余一律返回 ERR。具体子集因机型而异;很多商务机型只接受 PWR ON、PWR?、LAMP? 和空命令。
这就制造了那个经典的误导性现象:你在待机状态下测 SOURCE?,收到 ERR,于是断定线或端口有问题——而实际上链路完全正常,只是投影机在这个状态下拒绝这条命令。永远先用裸回车测试,并把 PWR ON / PWR? 当作待机安全命令来用。
3. 线用错了。 直通线当成了交叉线。见上面的针脚表。
4. 你没等冒号。 连发的命令会被丢弃。等 :,或遵守手册的执行时间。
5. 命令格式错导致 ERR。 ESC/VP21 区分大小写、也在意空格:PWR ON 中间只有一个空格,而 PWR? 中间没有空格。
6. 灯泡点火失败。 收到 PWR ON 后,投影机会最多尝试点灯三次;三次都失败说明是真的灯泡故障,不是控制问题。如果 PWR ON 回了冒号但投影机不亮,先发 ERR?,别去动中控系统。
关于时序:灯点亮之后要给投影机一点时间,别立刻猛发命令。预热期间切输入,是"命令被接受了但什么也没发生"的常见来源。
改走 TCP 网络控制
由于 ESC/VP21 与传输方式无关,同样的指令字符串走网络也成立——但必须在 ESC/VP.net 会话里发:先连投影机的 TCP 3629 端口,发送 Epson 规定的 16 字节握手,等投影机应答之后再发 ESC/VP21 指令;连上就直接发 ASCII 会跳过这一步。只要现场有网口就值得这么做:它一次性把串口线、交叉线之争、COM 口分配这三个问题从你的排查清单里划掉。
如果机器支持,PJLink 是另一个网络选项,而且跨品牌——当展厅里有多个厂商的投影机时很有用。用 PJLink 干通用操作,爱普生专有的 CMODE、LUMINANCE 再回落到 ESC/VP21。
用 SoftControl 控制
SoftControl 用串口发 ESC/VP21,走网络时则通过 PJLink 控制爱普生投影机。它的 TCP 驱动不做 ESC/VP.net 握手,所以网络控制爱普生请用 PJLink 完成常用操作,ESC/VP21 留在串口上用。它的指令测试页会显示实际发出的字节,可以先确认结尾的 CR 在不在,再去怀疑线缆。