1、据(7,8,9,10)+总和校验(11,12)+CR或者LF(13) 写入的数据位数为6位时的格式,如数据:2378ABH 据(7,8,9,10,11,12)+总和校验(13,14)+CR或者LF(15) 数据读出时的通信格式: ENQ(1)+变频器站号(2,3)+指令代码(4,5)+等待时间(6)+总和校验(7,8)+CR或者LF(9) 2)写入数据时从变频器向PLC的送信数据 没有发现数据错误的格式 ACK(1)+变频器站号(2,3)+CR或者LF(4) 发现数据错误的格式 NAK(1)+变频器站号(2,3)+数据错误代码(4)+CR或者LF(5) 3)读出数据时从变频器到PLC的应答数据
2、 读出的数据为2位时的格式 STX(1)+变频器号(2,3)+读出数据(4,5)+ETX(6)+总和校验(7,8)+CR或者LF(9) 读出的数据为4位时的格式 STX(1)+变频器号(2,3)+读出数据(4,5,6,7)+ETX(8)+总和校验(9,10)+CR或者LF(11)读出的数据为6位时的格式 STX(1)+变频器号(2,3)+读出数据(4,5,6,7,8,9)+ETX(10)+总和校验(11,12)+CR或者LF(13) 4)读出数据时的从PLC到变频器送信数据 以上各表最后一列可以省去在变频器P124=0即可(本实验也省掉了) (2)数据定义 控制代码 信号(STX)+ASC码(
3、H02)+说明(数据开始);信号(ETX)+ASC码(H03)+说明(数据结束);信号(ENQ)+ASC码(H05)+说明(通讯请求);信号(ACK)+ASC码(H06)+说明(没有发现数据错误);信号(LF)+ASC码(H0A)+说明(回车);信号(CR)+ASC码(H0D)+说明(换行);信号(NAK)+ASC码(H15)+说明(发现数据错误);二、科威PLC自由协议的相关函数 1、发送函数 函数功能号:D8200=K29 调用方法::SETM8200 入口参数:通信格式(D8120); 待发送字节数(D8121); 发送区的起始单元(D8128); 发送/接收超时时间设定(D8127,可
4、选);状态参数:发送请求标志(M8121); 发送成功标志(M8122); 发送剩余字节数(D8122),超时剩余时间(D8130); 奇偶校验错标志(M8120),发送/接收超时标志(M8127);函数调用过程:设置入口参数赋函数功能号调用函数查看标志决定下一流程。2、接收函数 函数功能号:D8200=K30 通信格式:D8120_Bit10=1”发送结束自动转接收”则接收函数的函数功能号和通信格式就可以省略,参照科威PLC编程手册P196所述的自动隐式调用接收函数。通信格式(D8120) 待接收的字节数(D8123) 接收区的起始单元(D8129) 设定接收的起始字符(D8125) 设定接
5、收的终止字符(D8126) 发送/接收超时时间设定(D8127,可选) 接收请求标志(M8123) 接收到起始字节的标志(M8124) 接收到起始符的标志(M8125),接收到终止符的标志(M8126), 已接收的字节数(D8124),超时剩余时间(D8130) 奇偶校验错标志(M8120),发送/接收超时标志(M8127) 设置入参数赋函数功能号调用函数查看标志决定下一流程 3、辅助函数 所有的辅助函数调用的方式大体上是相似的 1)ASC码转换为HEX函数 D8200=K25 入口参数指针:D8201 有效字节数:D8202,即数据个数 起始字节:M8201;起始高字节:RST起始低字节:M
6、8201 字/字节有效:M8202;字有效:出口参数指针:D8203;M8203; 起始高字节: 起始低字节:M8204;M82024;设置出入口参数赋函数功能号调用函数;2)HEX转换为ASC码函数 :D8200=K26 调用方法: 字有效:M8202;M8204设置出入口参数赋函数功能号三、PLC与变频器的连线 变频器端的接口是RJ45;(见附件1) PLC端的接口是端子接线:RS485-A,RS485-B 把变频器的RDA和SDA连起来接到科威PLC的RS485-A把变频器的RDB和SDB连起来接到科威PLC的RS485-B(用网线制作通讯电缆);四、程序结构 1、程序框图 五、资源占用
7、情况说明 1)主程序 地址(D0)+存放内容(读/写标志:D0=0读;D0=1写);地址(D1)+存放内容(所读/写的数据位数);地址(D2)+存放内容(读/写命令代码);地址(D3)+存放内容(所写的数据);地址(D4)+存放内容(所写的数据);地址(D5)+存放内容(从站号);地址(D6)+存放内容(等待时间);数据寄存器(D0-D6)+状态元件S(S0-S4)+位元件M(M0-M43)+标签P(P0-P4);数据寄存器(D20)+位元件M(M51-M54)+标签P(P13-P16);数据寄存器(D7200)+位元件M(M1012-M1039);2)发送和接收函数 位元件M(M98-M10
8、0)+定时计(T200) 3)P0子程序 数据寄存器(D11-D18)+位元件M(M0-M43);数据寄存器(D6000-D6010)+位元件M(M1000-M1007);数据寄存器(D7000-D7021,D7030-D7033)+位元件M(M1012-M1039);4)P1子程序 数据寄存器(D11-D12)+位元件M(M1000-M1007);数据寄存器(D6011-D6012);数据寄存器(D7030-D7033);5)P2子程序 数据寄存器(D20-D24)+位元件M(M98-M99);数据寄存器(D7000-D7001);6)P3子程序 数据寄存器(D7D-10,D21-D24)+
9、位元件M(M1100-M1155)+定时器(T0);数据寄存器(D7000-D7003)+位元件M(M1200-M1215);数据寄存器(D7101-D7105);7)P4子程序 数据寄存器D7-D10D7101-D7105 8)P13子程序 P13子程序说明HFF=1的功能代码 数据寄存器 D1-D4 D20,D30, 9)P14子程序 P14子程序说明H7F=1的功能代码 10)P15子程序 P15子程序说明HFF=0的功能代码 11)P16子程序 P16子程序说明H7F=0的功能代码 附件1:接线图 附件2:在实现相应的读写参数之前先保证通信参数扩展“H7F或者HFF”的值是它们所在列的
10、“H7F或者HFF”的值,但是因为每列“HFF或者H7F”的有且只需要填写一次(填写一次后变频器自动记忆,除非复位,出厂时“HFF=0或者H7F=0”)即可去完成“HFF或者H7F”所在列的其他功能,方法是:填写D30=0,并按下相应的M即可附表2使用说明:首先根据需要选定相应的参数,再根据参数找相应纵横的首行M,首列D30的值,需要先把相应的把M强制为ON再给D30赋予相应功能号的值,即可实现要读的参数;若要写再通过D3赋予所需要的数值即可实现写的功能。下面用下面两个例子,分别说明读写方法:读写前变频器参数设定:根据程序通信格式要求:D8120=H0436(含义:表示“0”表示自由协议, “
11、4”表示发送结束自动转接收,“3”表示波特率为9600bps,“6”为7位数据1停止位且无奇偶校验.故变频器参数设定如下:PLC和1#变频器通信时,所以P117=1;P118=96;P119=10;P120=2;P121=9999;P122=9999;P123=9999;P124=0 例一:要读取“输出电压值”(功能号为D30=K3,M51=ON和M100=ON),则先令M100=ON,再令M51=ON,最后填写D30=K2就可以在D10看到相应的电压值。总结读取相关参数步骤(方法):例二:要写入“启动频率”(功能号D30=K14,M53=ON,M100=ON),则先令M100=ON,其次令M
12、53=ON,再次填写D30=K14,最后通过D3填写相应的“启动频率值”如“启动频率值”=0.5HZ,最小单位0.01HZ,“启动频率值”=D3*最小单位,所以D3=K50。最小 单位参见三菱变频器FR-E500系列说明书P54〜P60参数表(出厂参数表4.1.1) 后记:1、由于仓促错漏等不足之处在所难免,望各位同行朋友多多指教!2、提供有附件2表中所有功能的程序,同时还提供了程序简化仅访问下表四个重要参数的程序,希望对各位同行朋友参考,学习有所帮助。D30的值(功能号10进制)扩展码HFF=1 读:输出频率 读:输出电流 读:输出电压 读:最近两次报警(高字节前一次报警,低字节后一次报警)