硬件清单:
Siemens S7-1200 PLC(CPU型号需支持PROFIBUS-DP主站,例如:CPU 1214C + CM 1243-5 通信模块)
Eurotherm(SSD)590C 直流调速器(必须配备PROFIBUS-DP通信卡,型号通常为 DPC01或 DPC02)
PROFIBUS-DP网络组件:PROFIBUS电缆、PROFIBUS-DP接头(带终端电阻)
触摸屏(HMI),支持与S7-1200通信(如西门子精智面板、SMART LINE,或其他品牌如威纶通、MCGS等,需支持S7-1200的通信驱动)
24V DC电源
软件清单:
Siemens TIA Portal(博途)V15 或更高版本(用于配置S7-1200和HMI)
Eurotherm DrivesTalk 或 590Series 上位机软件(用于配置590C参数,非必需,但强烈推荐)
SSD 590C PROFIBUS GSD 文件(ESL5_11.GSD或类似,可从Eurotherm官网或驱动器配套光盘获取)
使用PROFIBUS电缆和接头,将网络连接起来。拓扑结构为线性总线。
接线顺序:CM 1243-5 (DP主站) -> 第一个590C的DP口 -> 第二个590C的DP口 -> ... -> 最后一个590C的DP口。
注意:网络两端的DP接头上的终端电阻开关必须拨到 ON 的位置,中间的节点拨到 OFF。这是保证通信稳定的关键。
首先需要通过590C本机的按键或使用DrivesTalk软件设置以下关键参数。设置前请记录原参数,以便恢复。
参数号 | 参数名称 | 设置值 | 说明 |
|---|---|---|---|
PROTOCOL | 通讯方式 | OPTION | 启用通信控制,这是通过PROFIBUS控制启停和速度的前提 |
BAUD RATE | 波特率 | 9600 | 通常保持默认。 |
OPTION ADDRESS | PROFIBUS站地址 | 例如 3 | 通过调速器DP卡上的DIP开关设置。非常重要! 必须与PLC组态中的地址一致。 |
设置步骤(通过面板按键):
按 MENU键进入菜单。
找到 SERIAL LINKS -> MAIN PORT(P1)
依次设置 通讯参数。
设置完成后,保存参数,然后断电重启590C使参数生效。
安装GSD文件:
在TIA Portal项目视图的“选项”菜单中,选择“管理通用站描述文件(GSD)”。
浏览并安装您下载的 ESL5_11.GSD文件。安装成功后,在硬件目录 > 其他现场设备> PROFIBUS-DP> Drives下可以找到 Eurotherm或 SSD的设备。
组态网络:
在“网络视图”中,将CM 1243-5模块拖拽到PLC的插槽中。
右键点击CM 1243-5的DP接口,选择“属性”,新建一个PROFIBUS网络,并设置正确的传输速率(如1.5 Mbps)和配置文件(DP)。
添加590C从站:
从硬件目录中找到刚才安装的590C设备,将其拖放到创建的PROFIBUS网络上。
点击该590C从站,在它的“属性”->“PROFIBUS地址”中,设置其站地址(必须与590C硬件DIP开关设置的地址完全一致)。
配置通信报文:
输出到590C(PLC -> 590C): 2个字节(控制字/启停命令) + 2个字节(速度给定值)。
输入从590C(590C -> PLC): 2个字节(状态字) + 2个字节(速度实际值) + 2个字节(电流值) + 2个字节(电压值)。
在590C从站的“设备视图”中,需要为其分配通信模块(即输入/输出地址区)。
关键步骤:选择与参数C8(COMMS FORMAT) 相匹配的报文格式。对于 C8=3,通常选择 “PPO Type 3”。
PPO Type 3 的结构通常是:
系统会自动分配I/O地址,例如 QB64-QB67输出,IB64-IB69输入。请记下这些地址,编程时会用到。
假设TIA Portal分配的地址为:
输出(控制字+给定值): QB64- QB67(共4字节)
输入(状态字+实际值+电流+电压): IB64- IB69(共6字节)
控制590C(写入):
Bit 0 (LSB): ON/OFF (1=启动, 0=停止)
Bit 1: 允许运行 (1=允许)
Bit 2: 快速停车 (1=激活)
Bit 3: 故障复位 (上升沿触发复位)
启停控制:控制字通常是一个16位的位组合。最常见的位是:
通常,发送 W#16#047E到控制字表示“准备就绪”,发送 W#16#047F表示“启动”。
速度给定:速度给定值是一个16位整数(INT)。你需要将实际的速度值(单位:RPM)按比例缩放成-16384至+16384(或0-16384,取决于参数设置)对应的数字量。例如,如果最大速度是1500RPM,那么 1500RPM -> 16384。
示例程序段:
// 将HMI传来的启动/停止BOOL信号,组合成控制字 #Control_Word := 16#047E; // 默认状态:停止,允许运行 IF #HMI_Start THEN #Control_Word := 16#047F; // 启动命令 END_IF; IF #HMI_Fault_Reset THEN #Control_Word := #Control_Word OR 16#08; // 置位故障复位位 END_IF; // 将组合好的控制字发送到输出地址 MOV_W(IN := #Control_Word, OUT => PQW64); // 前两个字节是控制字 // 将HMI传来的速度设定值(0.0-1500.0)缩放为0-16384的整数 #Speed_Setpoint_Scaled := REAL_TO_INT(#HMI_Speed_Setpoint * 16384.0 / 1500.0); MOV_W(IN := #Speed_Setpoint_Scaled, OUT => PQW66); // 后两个字节是速度给定
读取590C数据(读取):
状态字:读取 IB64-IB65,可以解析出“运行中”、“故障”等状态位。
实际速度:读取 IB66-IB67,这是一个INT值,需要反向缩放回工程值(RPM)。
电流/电压:读取 IB68-IB69和 IB70-IB71,同样需要根据量程进行缩放。
示例程序段:
// 读取状态字并解析 #Status_Word := PIW64; #Drive_Running := (%IB64 AND 16#40) <> 0; // 举例:状态字Bit 6通常表示“运行中” #Drive_Fault := (%IB64 AND 16#80) <> 0; // 举例:状态字Bit 7通常表示“故障” // 读取实际速度并缩放 #Speed_Actual_Raw := PIW66; #HMI_Speed_Actual := INT_TO_REAL(#Speed_Actual_Raw) * 1500.0 / 16384.0; // 读取电流和电压(假设量程为0-500A, 0-600V) #Current_Raw := PIW68; #HMI_Current_Actual := INT_TO_REAL(#Current_Raw) * 500.0 / 16384.0; #Voltage_Raw := PIW70; #HMI_Voltage_Actual := INT_TO_REAL(#Voltage_Raw) * 600.0 / 16384.0;
在TIA Portal中添加HMI设备,并配置其与S7-1200的连接。
在HMI画面中创建变量,直接连接至第二步PLC程序中创建的 #HMI_Start, #HMI_Speed_Setpoint, #HMI_Speed_Actual等PLC变量。
创建画面元素:
按钮:关联 #HMI_Start和 #HMI_Fault_Reset变量。
IO域(输入):关联 #HMI_Speed_Setpoint,用于设定速度。
IO域(输出):关联 #HMI_Speed_Actual, #HMI_Current_Actual, #HMI_Voltage_Actual,用于显示实时数据。
指示灯:关联 #Drive_Running和 #Drive_Fault,用于显示运行和故障状态。
上电顺序:建议先给590C和网络通电,最后给PLC通电,让主站自动配置网络。
诊断:在TIA Portal的“在线与诊断”中,查看CM 1243-5和590C从站的状态。如果从站有红色叉号,检查:
物理连接(电缆、终端电阻)。
站地址是否一致(软件 vs DIP开关)。
波特率设置是否一致。
数据不更新:检查590C的 C6, C8参数是否正确,以及PLC程序中地址映射和缩放计算是否正确。
能通信但无法启动:重点检查控制字的每一位是否正确,特别是“允许运行”位。
通过以上步骤,您应该能够建立起一个完整的由S7-1200 PLC通过PROFIBUS-DP控制590C直流调速器,并通过HMI进行监控的系统。
联系人:周先生
手 机:15862659855
电 话:0512-50132715
邮 箱:15862659855@163.com
公 司:昆山科瑞艾特电气有限公司
地 址:江苏省昆山市古城路668号