![从零学PLC技术](https://wfqqreader-1252317822.image.myqcloud.com/cover/601/29974601/b_29974601.jpg)
2.1.3 编写程序
(1) 建立、保存和打开项目文件
项目文件类似于文件夹,程序块、符号表、状态表、数据块等都被包含在该项目文件中。项目文件的扩展名为.mwp,要用STEP 7-Micro/WIN软件才能打开。
建立项目文件的操作方法是:单击工具栏上的“”图标,或执行菜单命令“文件”→“新建”,即新建一个文件名为“项目1”的项目文件。
如果要保存项目文件并更改文件名,可单击工具栏上的“”图标,或执行菜单命令“文件”→“保存”,弹出“另存为”对话框,如图2-10所示。在该对话框中选择项目文件的保存路径并输入文件名,单击“保存”按钮,就将项目文件保存下来,在软件窗口的“指令树”区域上部显示文件名和保存路径,如图2-11所示。
![](https://epubservercos.yuewen.com/174F4A/16499761005802706/epubprivate/OEBPS/Images/image30.jpg?sign=1739282544-j8W93LCqsG8P0RFtclt1MbuZQcXs0KLB-0-13ac65b6c0be2a6614ccad45fe8edb80)
图2-10 保存文件对话框
![](https://epubservercos.yuewen.com/174F4A/16499761005802706/epubprivate/OEBPS/Images/image31.jpg?sign=1739282544-U3FEZifTzrWrMnxezeqozLPWWUGGnssO-0-0592ec859299dab8c9490088c716a365)
图2-11 指令树区域显示的文件名及路径
如果要打开其他项目文件进行编辑,可单击工具栏上的“”图标,或执行菜单命令“文件”→“打开”,会弹出“打开”对话框,在该对话框中选择要打开的项目文件,再单击“打开”按钮,选择的文件即被打开。
(2)编写程序
① 进入主程序编辑状态 如果要编写程序,STEP 7-Micro/WIN软件的程序编辑区应为主程序编辑状态,如图2-5所示;如果未处于主程序编辑状态,可在“指令树”区域选择“程序块”→“主程序(OB1)”,如图2-12所示,即能将程序编辑区切换为主程序编辑状态。
![](https://epubservercos.yuewen.com/174F4A/16499761005802706/epubprivate/OEBPS/Images/image32.jpg?sign=1739282544-f0N5QqKumO4vytw8dQEkb1s06fmDv808-0-a0c7e519b90c6af286754ed5994a7290)
图2-12 在指令树区域打开主程序编辑区
② 设置PLC类型 S7-200 PLC类型很多,功能有一定的差距,为了使编写的程序适合当前使用的PLC,在编写程序前需要设置PLC类型。
设置PLC类型的方法是:执行菜单命令“PLC”→“类型”,弹出图2-13所示的“PLC类型”对话框,在该对话框中选择当前使用的PLC类型和版本;如果不知道当前使用的PLC类型和版本,可单击“读取PLC”按钮,软件会以通信的方式从连接的PLC中读取类型和版本信息;如果无法读取这些信息,可单击“通信”按钮,会弹出图2-9(a)所示的对话框,按前述方法对该对话框进行设置并双击“双击刷新”,对PLC进行通信操作。设置好PLC类型后,单击“确认”按钮关闭对话框,指令树区域的CPU变成设定的类型,如图2-14所示。如果设定的PLC类型与使用的PLC类型不一致,则程序无法下载到PLC,或PLC可能会工作不正常。
![](https://epubservercos.yuewen.com/174F4A/16499761005802706/epubprivate/OEBPS/Images/image33.jpg?sign=1739282544-eKdZZlazHgtoUxoUPJawiDYZ8yNtM1yO-0-03d5c5eb6b48b24f4103d9a3c90a0c38)
图2-13 设置PLC类型
![](https://epubservercos.yuewen.com/174F4A/16499761005802706/epubprivate/OEBPS/Images/image34.jpg?sign=1739282544-vUCjxYLw6lC65Cg1CAG7vPJWbClscRes-0-f7f7b6fc911adb230da230eaaf33305b)
图2-14 指令树区域显示PLC类型
③ 编写程序 下面以编写图2-15所示的梯形图为例来说明程序的编写方法。
![](https://epubservercos.yuewen.com/174F4A/16499761005802706/epubprivate/OEBPS/Images/image35.jpg?sign=1739282544-rnAp6lWzjP5HSxUUYDB8MEuCEMP57FYv-0-fc89b4abe9db42f4581baf5d58164b6c)
图2-15 要编写的梯形图
程序编写过程如下:
a.将鼠标在程序编辑区起始处单击,定位编程元件的位置,再打开指令树区域指令项下的“位逻辑”,单击其中的常开触点,如图2-16(a)所示,即在程序编辑区定位框处插入一个常开触点,定位框自动后移,如图2-16(b)所示。用同样的方法放置两个常闭触点和一个输出线圈,分别如图2-17和图2-18所示。
![](https://epubservercos.yuewen.com/174F4A/16499761005802706/epubprivate/OEBPS/Images/image36.jpg?sign=1739282544-frHsOwOpaBgiOm99DFYlyu5Yd4nfMlQg-0-046db1c8b11d1ffba7ea9de6f4216b24)
图2-16 放置常开触点
![](https://epubservercos.yuewen.com/174F4A/16499761005802706/epubprivate/OEBPS/Images/image37.jpg?sign=1739282544-2YCOoN4mOcDphWPWGXS38VNu7ew0C2hM-0-eadf58f8736d3435f76c3c3e91f57aed)
图2-17 放置常闭触点
![](https://epubservercos.yuewen.com/174F4A/16499761005802706/epubprivate/OEBPS/Images/image38.jpg?sign=1739282544-NViFKZ2HTMTRLlw73PsnZ6WTX4kE47sl-0-79c2cf4edfea575b4cc3c39fa97f7074)
图2-18 放置线圈
b.在网络1的第二行起始处插入一个常开触点,然后选中该触点,单击工具栏上的“”(向上连线)按钮,将触点与第一行连接起来,如图2-19所示。选中第一行的第3个触点(常闭触点),单击工具栏上的“
”(向下连线)按钮,在该触点连接一个向下线,如图2-20所示。打开指令树区域指令项下的定时器,双击其中的“TON”(接通延时定时器),在编辑区插入一个定时器元件,如图2-21所示。
![](https://epubservercos.yuewen.com/174F4A/16499761005802706/epubprivate/OEBPS/Images/image39.jpg?sign=1739282544-cvWcKHvNq0ADc2JEGuvPVggHxPGRGCa8-0-2921d41729325aeb246c7ff75f1c77ed)
图2-19 放置向上连线
![](https://epubservercos.yuewen.com/174F4A/16499761005802706/epubprivate/OEBPS/Images/image41.jpg?sign=1739282544-agFaMm0h8BEUx97nmlc0JuvXXvjAJ6MZ-0-c223b701c5d7ceaa4003967454b78f6e)
图2-20 放置向下连线
![](https://epubservercos.yuewen.com/174F4A/16499761005802706/epubprivate/OEBPS/Images/image42.jpg?sign=1739282544-itNFBxPGzYzOIZGlPOlKu2Iij1PP9DMI-0-a87c8b03f8aa6a67b85e24fb4410d5fe)
图2-21 放置定时器
c.在网络2中插入一个常开触点和一个输出线圈,如图2-22所示。一个网络的电路只允许有一个独立的电路,若出现两个独立电路,则编译时会出“无效网络或网络太复杂无法编译”。
![](https://epubservercos.yuewen.com/174F4A/16499761005802706/epubprivate/OEBPS/Images/image43.jpg?sign=1739282544-MhiPlNl0ye3vNpKvOUqLMZsxN5GJrVK7-0-24084993204ba86271224d452566f531)
图2-22 在网络2中放置常开触点和线圈
d.在网络1的第一个常开触点上方“??.?”处单击,该内容处于可编辑状态,输入该触点的名称“i0.0”,回车后,该触点名称变为“I0.0”,用同样的方法对其他元件进行命名,结果如图2-23所示。注意:当定时器命名为“T37”时,其时间单位自动变为100ms,定时时间“50”需要人工输入,该定时器的定时时间为50×100ms=5000ms=5s。
至此,程序编写完成。
![](https://epubservercos.yuewen.com/174F4A/16499761005802706/epubprivate/OEBPS/Images/image44.jpg?sign=1739282544-vBA558qk8pJpsFQ9X05pe6EM90xpGW2Q-0-3947b526f077cd49730e0db5546c61e2)
图2-23 给元件输入名称及参数
(3)编译程序
在将编写的梯形图程序传送给PLC前,需要先对梯形图程序进行编译,将它转换成PLC能接受的代码。程序编译方法是:执行菜单命令“PLC”→“全部编译”或“编译”,也可单击工具栏上的“”(全部编译)或“
”(编译),就可以编译全部程序或当前打开的程序,编译完成后,在软件窗口下方的输出窗口出现编译信息,如图2-24所示。如果编写的程序出现错误,编译时在输出窗口会出现错误提示,如图2-25所示,将程序中的常闭触点I0.1删除,编译时会出现错误提示,并指示错误位置,双击错误提示,程序编辑区的定位框会跳至程序出错位置。
![](https://epubservercos.yuewen.com/174F4A/16499761005802706/epubprivate/OEBPS/Images/image45.jpg?sign=1739282544-jsIXeBKEgrXQAfqTfHpQ6FuEU0JaHasy-0-f254f561119d0285c45dc54dfb6ce3fa)
图2-24 无错误的编译信息
![](https://epubservercos.yuewen.com/174F4A/16499761005802706/epubprivate/OEBPS/Images/image46.jpg?sign=1739282544-Vier3DpvdylZjLiXYBi6lPNsriC2i5Bg-0-c601c88c737884aaae609841edac22ab)
图2-25 提示有错误的编译信息