作者 | 主题 |
---|---|
yanney 游民 经验值:119 发帖数:1 精华帖:0 |
楼主 2020-05-28 20:05:56
主题:S7-300通过CP343实现V90控制 V90通过CP343实现定位控制 S7-1500可通过FB284实现V90定位控制,带PN接口S7-300可通过FB283实现V90定位控制,不带PN接口CPU,可通过增加CP343 PN通讯模块,通过自编程序,实现V90定位控制。
如上图所示,S7-300通过111报文与V90通讯,所分配地址为I0.0-I23.7和Q0.0-Q23.7,输入输出各12个字。由于CP343模块功能所限,无法直接使用I、Q地址与V90控制器通讯,需通过特定功能程序块,将I、Q地址映射至内部变量,如下图所示: FC11、FC12为西门子程序库内标准程序,图中DB1、DB2即为映射后V90控制字和状态字,各接口定义如下: 1. CPLADDR:CP343模块地址,如下图所示:其中256 dec = 100 hex。 2. MODE:输入参数MODE = 0,因为CP343模块仅被使用了PROFINET IO设备。如果被同时用做PROFINET IO控制器和PROFINET IO设备,那么输入参数MODE = 1。 3. LEN:所需传输数据长度。 4. SEND、RECV:接收、发送数据所对应的地址,SEND数据区等同于V90所分配Q地址,RECV数据区等同于V90所分配I地址。 5. IOCS:每个位对应所传输数据长度一个字节,由于需要传输24个字节数据,所以该处为24个位。 6. DONE、NDR、ERROR和STATUS是通讯功能块的工作指示位置。如果发送任务成功完成,那么FC11“ PNIO_SEND”的“ DONE ”将被置位。如果接收任务成功完成(例如:数据被接收到),则FC12“ PNIO_RECV”的“ NDR”将被置位。 如果FC11“ PNIO_SEND”和FC12“ PNIO_RECV”由于错误而结束,则可通过状态字进行错误分析。 由于PLC地址与V90报文对应关系,需进行高低字节转换,如下图所示:
111报文控制字、状态字对应关系如下: 1. 控制字:用于控制驱动,报文顺序如下,其中PZD5为设定速率、PZD6-PZD7为设定位置、PZD8-PZD9为设定速度、PZD10为设定加速度、PZD11为设定减速度、PZD12为自定义,通过参数29151设置。
若要PLC控制驱动,STW1.10必须设置为1。 2. 状态字:反馈驱动状态,顺序如下,其中PZD6-PZD7为实际位置、PZD8-PZD9为实际速度、PZD10为故障代码、PZD11为警告代码、PZD12为自定义,可读取驱动扭矩或电流,通过参数29150设置。 3. 通过通讯及报文编程,即可完成S7-300通过CP343对V90控制器的控制。 |