要实现的是在触摸屏上输入字母,将其传输并保存到 PLC 中的功能,核心是利用触摸屏的文本输入控件与 PLC 的字符存储区域(如字符串寄存器、ASCII 码寄存器)进行数据交互,不同品牌的 PLC 和触摸屏实现方式略有差异,但逻辑一致。下面以三菱 GT 系列触摸屏 + FX3U PLC、西门子 TP 系列触摸屏 + S7-1200/300 PLC为例,提供具体的实现步骤和关键配置。
数据编码:字母(包括大小写)、数字、符号在计算机中以ASCII 码存储(如字母A对应 ASCII 码65,a对应97),触摸屏输入的字母会被转换为 ASCII 码后传输到 PLC。
存储区域:
数据交互:触摸屏的文本输入控件绑定 PLC 的存储区域,输入字母后,触摸屏自动将 ASCII 码写入 PLC;PLC 可读取这些数据进行后续处理(如显示、判断、通讯传输)。
FX3U 无原生字符串类型,需通过ASCII 码存储 + 寄存器映射实现,步骤如下:
触摸屏:三菱 GT2308-VTBD(或其他 GT 系列),使用GT Designer3软件组态。
PLC:FX3U,使用GX Works2软件编程。
通讯:已建立 RS422 / 以太网通讯(参考之前的焊线与配置步骤)。
在 FX3U 中指定连续的 D 寄存器用于存储字符的 ASCII 码,示例配置:
| PLC 寄存器 | 功能说明 | 示例(存储 “ABC”) |
|---|
| D100 | 第一个字符的 ASCII 码 | 65(对应A) |
| D101 | 第二个字符的 ASCII 码 | 66(对应B) |
| D102 | 第三个字符的 ASCII 码 | 67(对应C) |
| D103 | 字符串长度(可选) | 3(表示 3 个字符) |
打开 GT Designer3,新建项目并关联 FX3U PLC。
拖放文本输入控件到触摸屏画面,双击控件进入配置界面:
数据类型:选择ASCII 码(关键!若选数值则无法输入字母)。
地址绑定:选择 PLC 的 D 寄存器起始地址(如 D100),设置字符长度(如 3,表示可输入 3 个字母)。
输入范围:勾选字母(大写 / 小写)、数字、符号(根据需求选择)。
(可选)拖放文本显示控件,绑定相同的 D 寄存器地址,用于实时显示输入的字母。
将触摸屏程序下载到 GT2308,PLC 程序下载到 FX3U。
触摸屏上点击文本输入控件,弹出虚拟键盘,输入字母(如 “ABC”),确认后,触摸屏会将A(65)、B(66)、C(67)分别写入 D100、D101、D102。
PLC 可通过ASCI、HEX等指令读取这些 ASCII 码,转换为字符或进行逻辑处理。
S7-1200 支持 String 类型,实现更简洁,步骤如下:
打开 TIA Portal,在 S7-1200 的 ** 数据块(DB1)** 中定义字符串变量:
plc
VAR_GLOBAL
Input_String: STRING[10]; // 定义长度为10的字符串,可存储10个字符
Save_Flag: BOOL; // 保存标志位(可选,触发数据永久保存)
END_VAR
打开 WinCC Flexible,新建项目并关联 S7-1200 PLC。
拖放输入 / 输出域控件到画面,双击配置:
(可选)添加保存按钮,绑定 PLC 的DB1.Save_Flag变量(上升沿触发,用于 PLC 将字符串保存到掉电保持区)。
若需要断电后数据不丢失,可将字符串保存到 S7-1200 的掉电保持数据块,或通过指令写入存储卡:
st
// ST语言示例:当Save_Flag为ON时,将输入字符串保存到掉电保持变量
VAR
Save_String: STRING[10] AT %MW100; // %MW100为掉电保持地址
END_VAR
IF Save_Flag THEN
Save_String := Input_String; // 复制字符串到掉电保持区域
Save_Flag := FALSE; // 复位标志位
END_IF;
数据类型匹配:触摸屏文本输入控件的数据类型必须设为 ASCII 码 / 字符串,若设为数值,将无法输入字母(仅能输入数字)。
寄存器长度:三菱 FX 系列需预留足够的连续 D 寄存器存储字符,西门子则需设置字符串的最大长度。
掉电保持:若需要数据断电不丢失,需将 PLC 的存储区域设置为掉电保持(如 FX3U 的 D 寄存器可通过参数设置掉电保持,S7-1200 可选择掉电保持数据块)。
字符显示:若 PLC 需要在触摸屏上显示输入的字母,需使用文本显示控件绑定相同的存储地址,确保数据类型一致。
实现触摸屏输入字母并保存到 PLC 的核心是触摸屏文本输入控件与 PLC 存储区域的绑定,且数据类型需选择 ASCII 码 / 字符串。
三菱 FX 系列无原生字符串类型,需用连续 D 寄存器存储 ASCII 码;西门子 S7-1200/300 支持 String 类型,配置更简洁。
需注意数据类型匹配、掉电保持设置,确保输入的字母能正确存储和读取。