北京多日的雾霾在今天终于有所缓解,今天天气不错挺风和日丽的,所以心情也格外不错。早早的来到公司,坐到自己的工位上打开电脑,登陆平台……一切准备工作就绪 准备开始迎接新一天case的挑战。 叮铃铃……。“喂。您好 这里是西门子热线您需要咨询什么技术问题。” 客户:“工程师您好。我想咨询一下关于S7-200 Modbus通信的问题” 早晨**个case是S7-200的Modbus通信,这个在我们的Micro Win软件里面添加一个**的Modbus 指令库,对应需要读取或者写入的地址,通过Done位的轮询就能实现通信的功能。想到这里于是就对客户说 “ 您如果希望使用S7-200plc进行Modbus通信,可以添加一个库文件,并且我们有相关的样例程序,您可以参考一下。” 客户说:“我已经查看过你们的样例程序了。但是对于你们的样例程序有一些地方没有看懂,您能帮我解释一下吗” 我说:“好的,您尽管说您没看懂的地方” 客户说:“你们的Modbus主站样例程序大致分三个部分,**个网络是状态的位的复位
*三部分是MSG指令的使用
如果是按照您的那种方式编程,这个上升沿是不能被捕捉到的。换句话说按照您说的那种方式编程,程序是不能顺序执行的,执行到M0.0之后就停止了。单纯的查看程序不直观,您可以按照我说的稍微修改一下这段程序。在上升沿语句后面加上一个置位Q0.0的操作。这样方便您在CPU上和状态表中监控执行结果。对比一下这两种编程的结果您就清楚了。”
之所以会出现运行的不同都是由于上升沿造成的,按照客户描述的编程逻辑M0.0位会在*二个网络中被置位为1当程序执行到*三个网络的时候需要有上升沿才会触发M0.1和Q0.0的置位操作,但是由于M0.0已经变为了1无法再捕捉到上升沿所以程序也就无法继续执行。相反如果是按例程序中编写的那样。在*二个网络执行的时候M0.0还是0.当执行到*三个网络的时候M0.0变为1,捕捉到上升沿。因此程序可以继续顺序执行。 |
1、“启用外设输出”功能简介 CPU处于STOP工作模式 只能对外设输出区,即必须是带 ”P” 的 Q 地址区地址进行修改 已经建立与 CPU 的在线连接 软件:STEP7 V5.5 SP2 硬件:CPU315-2PN/DP,SM374(模块,组态为8DI/8DO),组态如图1所示。
3)建立与plc的在线连接,并通过CPU的模式转换开关(或通过菜单命令)将CPU的工作模式转换为STOP模式。 4)选择变量表窗口中的“Variable”菜单,可以看到这时的” Enable peripheral outputs”菜单已经有效。在菜单中选中此功能,并在弹出的对话框中选择“Yes”,即可“启用外设输出”的功能。
5)在变量表的修改值列中输入相应的修改值(这里将P0的修改值设置为B#16#FF),并在快捷菜单中选择“Active Modify Value”,则实际的输出点状态将被修改为设定值(可以看到这时的SM374模块的8个输出点指示灯全部被点亮)。
通过菜单取消“启用外设输出”功能 将STEP7转到离线模式 直接通过”ESC”键退出 |