关于S7-1200plc S7模拟通讯仿真验证过程
今日在“找答案”栏目中看到一网友提问,问题贴链接:http://www.ad.siemens.com.cn/service/answer/solve_241954_1072.html#,话说S7通讯无法连接的问题,之前我按官方例子做过实际plc之间的S7通讯验证,只要仔细核对每步骤,一般通过验证没有什么问题。而网友的提问我始终想不出可能的原因,S7通讯硬件设置步骤较多,如果稍不注意通讯是无法建立起来的,为确认这些,我重新模拟仿真测试了一边官方的例子程序,测试结果是可以的。
我打开官方例子程序,找到图示官方例子程序:
该官方文档为V14版本保存的归档文件,而我portal软件版本是V15,需要做一些操作才可以打开。双击“S7_PUT_GET_Two_Side.zap14”,将文件保存在一个盘符,我把它放在桌面,“S7_PUT_GET_Two_Side.zap14”归档文件。
打开portal V15软件,在“项目”—“恢复”下选择到桌面.zap14文件,稍后恢复移植成功,将同个项目的2个plc分别下载到仿真器,图示:
成功将2个待验证的plc分别下载到仿真器后,为理解官方的通讯数据交换。打开简单的说明:
数据交换数据块,DB1,图示:
根据官方说明,数据交换:
S7-1215C S7-1217C
DB1.DBB0~DB1.DBB99 IB100~IB199
DB1.DBB100 ~DB1.DBB199 QB100~QB199
我尝试着将DB1.DBB100,写一个二进制数2#11,相当于使能服务器S7-1217C的Q100.0和Q100.1,图示:
将DB1.DBB100 = 2#11写入后,看服务器的仿真接收状态,能够正常使能,说明模拟仿真S7通讯是正常的。
继续在服务器OB1上写一个简单程序,图示:
目的是将服务器S7-1217C侧使能I100.0 = 1,将此信息通过S7通讯写入到DB1.DBB0,也相当于I100.0 = DB1.DBX0.0,(DB1.DBB0 = 16#01)
写入I100.0 = 1后,客户机S7-1215C的数据块侧,DB1.DBB = 16#01,同样也说明通讯数据交换正常。
综上,客户机侧通讯程序是官方的,我仅仅只是理解了官方例子程序后写了一点验证程序段。
如果那位网友看到,可以下载官方例子程序来参考自己编写S7通讯程序中的错误。