西门子模块6ES7232-0HD22-0XA0诚信经营
西门子模块6ES7232-0HD22-0XA0诚信经营
在工业现场可能会遇到这样的情况,分布在不同地方(车间、控制室场所等)的PLC之间需要进行远程相互控制,通常是采用RS485总线,通过MODBUS协议完成此功能。
如果现场布线不方便的话,也可以采用无线方式进行通信。这里以达泰DTD433无线模组和西门子S7_200为例进行说明。
一、两台S7_200 西门子PLC之间的远程控制
实现的功能:
PLC1的8个开关量输入,I0.0~I0.7与PLC2的开关量输出Q0.0~Q0.7一一对应,也就是说上图中的A1开关按下时,PLC1的开关量输入I0.0闭合,PLC2的输出继电器触点Q0.0导通,L2点亮。
PLC2的8个开关量输入,I0.0~I0.7与PLC1的开关量输出Q0.0~Q0.7一一对应,也就是说上图中的A2开关按下时,PLC2的开关量输入I0.0闭合,PLC1的输出继电器触点Q0.0导通,L1点亮。
PLC1与PLC2之间的通信是通过S7_200 CPU22XP的Port0通信口的RS485总线连接的,其中采用了Modbus协议。
二、西门子PLC通信中的Modbus协议编程方法
假设把PLC1作为主站,PLC2作为从站,分别编写主站和从站程序,主要掌握以下要点:
Modbus 主站读写程序
Modbus RTU主站功能是通过指令库中预先编好的程序功能块实现的,该库只针对Port 0口有效;
在程序中插入MBUS_CTRL指令,并在每次扫描时执行MBUS_CTRL。您可以使用MBUS_CTRL指令初始化或更改Modbus通讯参数。
Modbus RTU主站使用了一些用户中断,在用户程序中不能禁止中断;
读取从站数据在程序中插入MBUS_MSG指令,注意从站地址设置用一致;
该例程访问的为一个从站,若访问不同的从站,可通过改变从站地址来实现。
Modbus 从站读写程序
在个循环周期内插入MBUS_INIT指令初始化Modbus从站协议:
Mode: 模式选择,启动/停止MODBUS,1=启动;0=停止
Address: 从站地址,MODBUS从站地址,取值1~247
Baud: 波特率,可选1200,2400,4800,9600,19200,38400,57600,115200
Parity: 奇偶校验,0=无校验;1=奇校验;2=偶校验
Delay: 延时,附加字符间延时,缺省值为0
Done: 初始化完成标志,成功初始化后置1
Error: 初始化错误代码
在本例子中,设置从站地址为8,Port0 通讯波特率为9600bps,无校验;
本例子中Modbus RTU 从站指令使用的库存储为VB2000---VB2779,这段寄存器地址不能再被程序中的任何指令使用,包括MBUS_INIT 和MBUS_SLAVE 指令在内。
MBUS_SLAVE指令被用于为Modbus主设备发出的请求服务,并且必须在每次扫描时执行,以便允许该指令检查和回答Modbus请求。在每次扫描且EN输入开启时执行该指令。
三、无线Modbus通信的实现方法
以上说明了采用有线RS485总线实现多台PLC之间的远程控制方法,有时由于现场条件的限制,重新布设通信线路很不方便,例如山上与山下,或者横跨马路的情况,尤其对于工程改造项目二次布线几乎是甲方无法接受的。在这种情况下,可以采用DTD433无线通信模组代替通信电缆,实现起来非常方便,不需要
无线通信模组采用中心频率为433MHz开放的ISM频段,内部使用全数字RF通信芯片与单片机组成无线数传系统,外部通信接口与RS485总线完全一致,为了使用方便,通信实现所发即所得,也就是说数据通信是完全的透明方式,这样的话,用两个DTD433模组能够直接代替有线的RS485通信导线。需要注意的是:
PLC的Modbus通信速率要与无线数传模组的波特率设置一致,例如通信参数可以设置为9600bps,8位数据,无效验位。
S7_200的RS485+连接DTD433的RS485_B;
S7_200的RS485-连接DTD433的RS485_A;
无线数传模组的供电电源为直流24V,与PLC可以共用电源;
无线通讯距离在200米左右选用DTD433A模组;
无线通讯距离在1000米左右选用DTD433B模组;
无线通讯距离在3000米左右选用DTD433C模组;
保证通信距离,提高通信质量要选择高增益的吸盘天线,天线安放高度离地面越高效果越好。
四、PLC与DTD433无线模组通讯成功的案例
西门子PLC与DTD433C-S4 9600bps,8,N,1,RS485口
海为PLC与DTD433C-S4 9600bps,8,N,2,RS485口
台达PLC与DTD433A_S4 9600bps,7,E,1,RS485口
编程。
给大家讲三种仿真器与WINCC通讯的设置方法。另外据说:有些模拟通讯只有STEP7 5.4及以上版本才能实现。我用的是STEP7 5.4+PLCSIM5.4+WINCC6.2SP3,其他版本大家去试吧!
TCP/IP方式
首先在STEP7里边进行硬件配置、编程,硬件配置里边我先选CP343-1,设置IP地址:我设定为192.168.0.222。程序编好以后,直接运行PLCSIM,打开的时候会弹出来一个选择窗口如图一
,
选第二项(选择CPU访问节点,下边小方框也选上)。点OK又出来一个画面图二,
因为要实现TCP/IP通讯,所以选择CP343-1下边的Ethernet(1)adr:IP:192.168.0.222,双击就可以进入仿真器画面了,剩下的就是运行仿真器,下载硬件,下载程序。。。
下一步是设置PG/ PC,在这里只要选择PLCSIM(RFC1006)就可以,不再赘述。
再接下里是就是WINCC的设置啦,其他的不说啦,只说通讯设置,在S7协议组选选择TCP/IP新建连接如图三,
连接参数设定的时候,IP地址一定要设置和PLCSIM设置的CP343-1地址一样,还有CPU槽号设置一般是2,然后建立变量,主要是下一步,设置新连接的系统参数如图四。
具体参数如图五,选择PLCSIM(RFC1006)。
就跟PG/ PC设置一样。TCP/IP通讯仿真设置完成了。
另外我还试了直接用315-2PN/DP的CPU,用PN口连接TCP/IP,设置相同,同样能实现。
PROFIBUS-DP通讯
和TCP/IP能通讯设置基本一样,还是这几个主要的地方需要注意,我就不截图了,只是照上边的说说吧。首先硬件配置的时候配置CPU的DP地址,比如5,然后还是按照上边的步骤,在图二中选择PROFIBUS-DP adr:5选项。
在设置PG/ PC的时候,选择PLCSIM(profibus)
图三中WINCC里当然是在PROFIBUS协议组下建新连接,新连接属性设置是DP通讯参数,DP地址也填5,SLOT号还是2。再接下来是PROFIBUS系统参数,这里选择PLCSIM(PROFIBUS)。PROFIBUS-DP通讯方式仿真设置完成。
MPI通讯
做法相仿,还是用TCP/IP图,简单说一下,STEP7硬件配置里当然得配置MPI地址,比如30,图二处选PLCSIM(MPI)。在PG/PC处也选择PLCSIM(MPI)。WINCC里边在MPI协议组下建新连接,属性设置里是MPI地址30,SLOT号2。MPI系统参数哪里还是选择PLCSIM(MPI)。
结束。。。。
下一步计划:实验IFIX和SIEMENS PLCSIM仿真器之间的连网。
生产设备常常要求具有上下、左右、前后等正反方向的运动,这就要求电动机能正反向工作,对于交流感应电动机,一般借助接触器改变定子绕组相序来实现。常规继电控制线路如下图所示。
在该控制线路中,KM1 为正转交流接触器,KM2 为反转交流接触器,SB1 为停止按钮、SB2 为正转控制按钮,SB3 为反转控制按钮。KM1、KM2 常闭触点相互闭锁,当按下SB2 正转按钮时,KM1 得电,电机正转;KM1 的常闭触点断开反转控制回路,此时当按下反转按钮,电机运行方式不变;若要电机反转,必须按下SB1停止按钮,正转交流接触器失电,电机停止,然后再按下反转按钮,电机反转。若要电机正转,也必须先停下来,再来改变运行方式。这样的控制线路的好处在于避免误操作等引起的电源短路故障。
PLC 控制电机正反转I/O 分配及硬件接线
1、接线:按照控制线路的要求,将正转按纽、反转按纽和停止按纽接入PLC 的输入端,将正转继电器和反转继电器接入PLC 的输出端。注意正转、反转控制继电器必须有互锁。
2、编程和下载:在个人计算机运行编程软件STEP 7 Micro-WIN4.0,首先对电机正反转控制程序的I/O 及存储器进行分配和符号表的编辑,然后实现电机正反转控制程序的编制,并通过编程电缆传送到PLC 中。在STEP 7 Micro-WIN4.0 中,单击“查看”视图中的“符号表”,弹出图所示窗口,在符号栏中输入符号名称,中英文都可以,在地址栏中输入寄存器地址。
3、图符号表定义完符号地址后,在程序块中的主程序内输入如下图程序。注意当菜单“察看”中“√符号寻址”选项选中时,输入地址,程序中自动出现的是符号编址。若选中“查看”菜单的“符号信息表”选项,每一个网络中都有程序中相关符号信息。
4、程序监控与调试:通过个人计算机运行编程软件STEP 7 Micro-WIN4.0,在软件中应用程序监控功能和状态监视功能,监测PLC 中的各按纽的输入状态和继电器的输出状态。
5、电机的正反转控制项目结果分析表:注意在硬件接线中必须实现互锁!在PLC 的梯形图中也应实现互锁。试分析仅在梯形图中实现的互锁能否真正避免电源的短路?
有电机的正反转控制项目的基础,可以进一步用西门子S7-200实现小车往返的自动控制。控制过程为:按下启动按钮,小车从左边往右边(右边往左边运动)当运动到右边(左边)碰到右边(左边)的行程开关后小车自动做返回运动,当碰到另一边的行程开关后又做返回运动。如此的往返运动,直到当按下停车按钮后小车停止运动。
设计思路:可以按照电气接线图中的思路来进行编写程序。即可以利用下一个状态来封闭前一个状态。使其两个线圈不会同时动作。同时把行程开关作为一个状态的转换条件。电气接线图如下:
接下来进行程序的编写,首先要进行 I/O口的分配。根据要求,I/O口的分配如下表所示。
I/O口分配好后可以根据上面的电气接线图进行程序的编写。参考程序如下: