PLC使用起来是不是一般都很方便?

版权声明:本文为博主原创文章,遵循 版权协议,转载请附上原文出处链接和本声明。

学习西门子PLC的朋友们对于西门子的S7-PLCSIM软件都不陌生,当我们安装了该软件后,在STEP7或者博图的面板中就多出了一个仿真的按钮,点击该按钮,就会调出仿真软件S7-PLCSIM软件,将当前的PLC项目下载进去。启动该仿真PLC,就可以在线查看程序状态,并可以模拟各种条件,进行PLC软件的调试。

S7-PLCSIM存在一个问题,它采用了内部协议与STEP7或者博图通讯,不能对外通讯,也就是说,外部的软件不能像访问真实的PLC一样,访问该仿真软件。学习HMI编程、PLC通讯的朋友就只能购买硬件PLC一条路了吗?

在热心网友绍兴-胡克()的推荐和帮助下,本人尝试了一个叫做NetToPLCsim的小免费软件,可以实现S7-PLCSIM与外部的以太网通讯,其工作原理:

下面简单介绍一下使用的步骤(初次接触的朋友请严格按照下述步骤操作):
1、启动STEP7或者博图软件;
2、用管理员权限打开NetToPLCsim软件(暂不要配置),如果要求停用西门子的服务,则点击同意,以便获取102端口的使用权;(该步骤与手册不同,是众多网友实践的经验)
3、启动PLCSIM软件,下载带有以太网通讯的功能的PLC项目(带有CP网卡,或者CPU自带以太网);
5、在站点配置对话框里,点击“Network IP Address”旁的“…”来选择现有的网络,选择一个将来访问该PLC的IP地址;
7、设置CPU的框架号和槽号,注意与硬件配置要一致;
9、用外部软件访问该PLC,进行测试,注意选择红圈里的地址(这个地址是你系统某个网卡的地址,可能也是192.168.0.1,不影响仿真,见10的第二张图片),而不是Plcsim的IP地址(这里是192.168.0.1):

注意:以上两个IP地址可能都Ping不通,这可能是系统禁用了ping命令,不一定影响数据访问。
10、下面是用访问时钟脉冲的效果:
下面为地址相同的例子:
对于博图软件,需要注意:需要通过Windows控制面板正确设置PG/PC接口,将S7ONLINE的访问点设置成“PLCSIM S7-0(TCP/IP)”,自V14之后,设置成“PLCSIM.TCPIP.1”(本人做测试时,并未关注该设置,也可通讯成功)。
11、退出软件时,会提示是否重新启动西门子的服务,这时候请选择启动。

以上测试环境:虚拟机 WIN7 X64。NetToPLCsim的更多功能和注意事项,请参考软件自带的手册。

最新版本的NetToPLCsim(更新到2021的1.2.5版本)可以从进行下载。

注:工控交流请加入QQ群。


一些网友碰到的问题(后续会继续完善):

  1. 怎么不通?不是应该一配置就通了吗?
    实际上,网络通讯是工控里非常难的话题,这个文章里的话题涉及到西门子的组件、NetToPLCSim软件、电脑的环境等等,任何一个环节有问题,都可能导致不通,所以,能通起来是不容易的。为了增加通的可能性,建议:
    1)尽量在虚拟机里玩:环境干净,虚拟网卡可以脱离硬件网卡工作。
    2)关闭所有的防护软件(搞工控的都知道这个常识);
    3)Network Address所在的网卡要工作,如果是一个RJ45口的网卡,则网络灯要亮,否则其协议解析不会工作。如果在虚拟机里,有一些虚拟网卡可以脱离硬件工作。如果不能ping通Network Address,就要用可信的软件来测试,比如上面提到的PLC-Recorder。
    4)确保西门子软件自己能够访问仿真器(如果自己都通不了,更不要想其他的了)。
  2. 1)基本只能仿真102端口的S7协议,PLCsim支持开放以太网协议,但是NetToPLCsim不支持。
}

我们打开欧姆龙CX-P软件,显示的是如下图所示的画面。总体感觉比较清爽简单,但是功能却很强大。

软件画面从上到下,依次分为标题栏、菜单栏、工具栏、工程编程窗口、底部信息栏。

我们点击工具栏中的图标,可以新建一个工程;点击工具栏中的图标,可以打开一个旧工程。工具栏图标的作用,只要把鼠标放在图标上面即可提示具体的中文信息。

新建、打开工程的第二种方法是:点击菜单栏中的“文件”→选择“新建”或者“打开”即可。

新建、打开工程的第三种方法是:用快捷键“ctrl+n”、“ctrl+o”。

保存一个工程和另存为一个工程基本上操作同上类似。

新建一个工程,则出现如下图所示画面,根据实际情况选择设备名称、设备类型、网络类型,然后点击“确定”按钮。

这时出现如下图所示的画面。画面左侧为“工程项目树区”,右侧为“程序编辑区”。

在工程项目树区,右击“新工程”可以插入新的PLC。在PLC名称处,用鼠标双击,调出“更改PLC”窗口,可以变更设备名称、设备类型、网络类型等。

确定PLC更改后,会提示更改风险,再确定后,更改成功。这时会自动出现一个“输出窗口”,提示所做的更改情况,如下图所示。

“输出窗口”有四个标签“编译”、“编译错误”、“查找报表”、“传送”,“输出窗口”可以点击工具栏中的图标打开/关闭,也可以在菜单栏中的“视图”→“窗口”→“输出”(快捷键Alt+2),如下图所示的画面,选择开启或关闭。

其中的“查看”(Alt+3)窗口,是PLC调试时用到的重要窗口。眼镜图标与西门子PLC编程软件中的调试监看按钮相似,与三菱PLC编程软件中的监看窗口功能一样。

我们在新工程项目树中新建了两个PLC,可以看到它们的配置功能是不一样的。

其中都有“符号”这个选项,双击它,可以弹出一个符号表,如下图所示画面。不同的PLC型号符号表中的内容数量或多或少可能不一样,它们是常用的特殊继电器,在程序中一般用符号表示。

欧姆龙把难记的特殊继电器特别放在的程序左侧,确实很方便查找。

双击PLC下方的“设置”,可进入PLC的设定窗口。同样,对于不同的PLC类型,“设置”中的内容也是不一样的。

双击PLC下方的“内存”,可进入PLC的内部存储器监视窗口,如下图所示画面,可以很方便地监控PLC绝对地址的实时状态。

除此之外,还可以修改数据,向PLC内存中传送、比较、强制、设置、清除、填充数据等。同样,对于不同的PLC类型,“内存”中的内容也是不一样的。

鼠标右击PLC下方的“程序”,可以插入新程序;在新程序中可以插入程序段。可以进行常规的打开、复制、粘贴、删除、重命名等操作。

右击程序下方的“符号”,选择“插入符号”,可以自定义符号,与西门子PLC的“变量名”,三菱PLC的“标签”是同一个意思。


双击程序名下方的“程序段”,可以在编程窗口编写段程序。编写好的程序可以点击在线模拟图标,进行模拟运行。

某些高线CPU的PLC类型,在PLC名称下方有“功能块”,右击它可以插入功能块,也就是函数块FB。可以插入梯形图的功能块、ST语言的功能块和外部功能块。

以上就是欧姆龙PLC编程软件CX-Programmer的简单介绍,你是否学会了呢?

感谢阅读指正,关注了解更多!

}
使用CPU S7 315F, ET 200S以及故障安全DI/DO模块,那么您将调用OB35 的故障安全程序。而且,您已经接受所有监控时间的默认设置值,并且愿意接收“通讯故障”消息。OB 35 默认设置为100毫秒。您已经将F I/O模块的F监控时间设定为100毫秒,因此至少每100毫秒要寻址一次I/O模块。但是由于每100毫秒才调用一次OB 35,因此会发生通讯故障。要确保OB35的扫描间隔和F监控时间有所差别,请确保F监控时间大于OB35的扫描间隔时间。 
使用CPU的PROFIBUS接口上的DP从站操作PROFIBUS网络时,希望在启动期间检查期望的组态与实际的组态是否匹配。在 CPU属性对话框中的Startup选项卡上给出了两个不同的时间。  
如果电源(仅S7-400)或缓冲区中的一个错误触发一个事件,则CPU操作系统访问OB81。错误纠正后,重新访问OB81。电池故障情况下,如果电池检测中的BATT.INDIC开关是激活的,则 S7-400仅访问OB81。如果没有组态OB81,则CPU不会进入操作状态STOP。如果OB81不可用,则当电源出错时,CPU仍保持运行。  
4.为S7CPU上的I/O模块(集中式或者分布式的)分配地址时应当注意哪些问题?
请注意,创建的数据区域(如一个双字)不能组态在过程映象的边界上,因为在该数据块中,只有边界下面的区域能够被读入过程映像,因此不可能从过程映像访问数据。因此,这些组态规则不支持这种情况:例如,在一个 256 字节输入的过程映像的 254 号地址上组态一个输入双字。如果一定需要如此选址,则必须相应地调整过程映像的大小(在CPU的Properties中)。  
5.在S7 CPU中如何进行全局数据的基本通讯?在通讯时需要注意什么?   
全局数据通讯用于交换小容量数据,全局数据(GD)可以是: 输入和输出标记,数据块中的数据,定时器和计数器功能 。  
数据交换是指在连入单向或双向GD环的CPU之间以数据包的形式交换数据。GD环由GD环编号来标识。  
双向连接:两个CPU之间的连接:每个CPU都可以发送和接收一个GD数据包。  
必须确保接收端CPU未确认全局数据的接收。如果想要通过相应通讯块(SFB、FB或FC)来交换数据,则必须进行通讯块之间的连接。通过定义一个连接,可以极大简化通讯块的设计。该定义对所有调用的通讯块都有效且不需要每次都重新定义。  
对于下列型号的CPU ,请检查 24V 电压是否接入引脚 1。LED由输入电流控制。引脚 1 上的 24V 电压需要做进一步处理。
请确定以太网(PROFINET)中的所有组件(转换)都支持 100 Mbit/s全双工基本操作。避 免中心分配器割裂网络,因为这些设备只能工作于半双工模式。  

9.在硬件配置编辑器中,“时钟”修正因子有什么含义呢?   
在硬件配置中,通过CPU > Properties > Diagnostics/Clock,你可以进入“时钟”> 域内指定一个修正因子。这个修正因子只影响CPU的硬件时钟。时间中断源自于系统时钟,并且和硬件时钟的设定毫无关系。  
FB14和FB15是异步通讯功能。这些模块的运行可能跨越多个OB1循环。通过输入参数REQ激活FB14或FB15。DONE、NDR或ERROR表明作业结束。PUT和GET可以同时通过连接进行通信。 
15.如何在已配置为DP从站的两个CPU模块间组态直接数据交换(节点间通信)?   
两个CPU站配置为DP从站,而且由同一个DP主站操作,它们之间的通信通过配置交换模式为DX可以完成直接数据交换。  
对于单向基本通信,使用系统功能 SFC67 (X_GET)从一个被动站读取数据,使用系统功能SFC68(X_PUT)将数据写入一个被动站(服务器)。这些块只有在主动站中才调用。对于一个双向基本通信,调用站中的系统功能SFC65 (X_SEND),在该站中想将数据发送到另一个主动站。在同样为主动的主动接收站中,数据将通过系统功能SFC66
两种类型的基本通信中,每次块调用可以处理最多 76 字节的用户数据。对于S7-300 CPU,数据传送的数据一致性是 8 个字节,对于S7-400 CPU则是全长。如果连接到S7-200,必须考虑到S7-200只能用作一个被动站。  
17.什么是自由分配 I/O 地址?
地址的自由分配意味着您可对每种模块(SM/FM/CP)自由的分配一个地址。地址分配在 STEP 7 里进行。先定义起始地址,该模块的其它地址以它为基准。 
自由分配地址的优点:因为模块之间没有地址间隙,就可以优化地使用可用地址空间。在创建标准软件时,分配地址过程中可以不考虑所涉及的 S7-300 的组态。  
18.诊断缓冲器能够干什么? 
更快地识别故障源,因而提高系统的可用性。评估STOP之前的最后事件,并寻找引起STOP的原因。
诊断缓冲器是一个带有单个诊断条目的循环缓冲器,这些诊断条目显示在事件发生序列中;第一个条目显示的是最近发生的事件。如果缓冲器已满, 最早发生的事件就会被新的条目所覆盖。根据不同的CPU,诊断缓冲器的大小或者固定,或者可以通过HW Config中通过参数进行设置。  
19.诊断缓冲器中的条目包括哪些?
2) 操作模式转变以及其它对用户重要的操作事件;   
在操作模式STOP下,在诊断缓冲器中尽量少的存储事件,以便用户能够很容易在缓冲器中找到引起STOP的原因。因此,只有当事件要求用户产生一个响应(如计划系统内存复位,电池需要充电)或必须注册重要信息(如固件更新,站故障)时,才将条目存储在诊断缓冲器中。 
为了给项目选择合适的MMC,需要了解整个项目的大小以及要加载块的大小。可以按照如下所述的方法来确定项目的大小: 
1) 首先归档STEP 7项目。然后在Windows资源浏览器中打开已归档项目,并确定其大小(选中该项目并右击)。这会告诉您归档文件的大小。
3) 必须将该值和已经确定的归档项目的大小相加。这样就可以得出在一个MMC上保存整个项目所需的总内存的大小。  
复位CPU时,内存没有被完全删除。整个主内存被完全删除了,但加载内存中数据,以及保存在Flash-EPROM存储卡(MC)或微存储卡(MMC)上的数据,则会全部保留下来。除了加载内存以外,计时器(CPU 312 IFM除外)和诊断缓冲也被保留。具有MPI接口或一个组合MPI/DP接口的CPU只在全部复位之前保留接口所采用的当前地址和波特率。另一方面,另一个PROFIBUS地址也被完全删除,不能再访问。
如果在CPU上已经更改了MPI参数,请检查硬件配置。可以将这些值与在'Set PG/PC interface'下的参数进行比较,看是否有不一致。 
或者可以这样做:打开一个新的项目,创建一个新的硬件组态。在CPU的MPI接口的属性中为地址和传送速度设置各自的值。将'空'项目写入存储卡中。把该存储卡插入到CPU 然后重新打开CPU的电压,将位于存储卡上的设置传送到CPU。现在已经传送了MPI接口的当前设置,并且像这样的话,只要接口没有故障就可以建立连接。这个方法适用于所有具有存储卡接口的S7-CPU。  
如果发生一个所描述的错误(见文件1),则将调用并处理相应OB。如果没有加载该OB,则CPU进入STOP(例外:OB70、72、7 3和81) 。 
1) 同步错误:这些错误在处理特定操作的过程中被触发,并且可以归因于用户程序的特定部分。
2) 异步错误:这些错误不能直接归因于运行中的程序。这些错误包括优先级类的错误,自动化系统中的错误(故障模块)或者冗余的错误。  
1) 诊断OB82:如果一个支持诊断,并且已经对其释放了诊断中断的模块识别出一个错误,它既对进入事件也对外出的事件向 CPU 发出一个诊断中断的请求。操作系统然后调用 OB82。在 OB82 自己的局部变量里包含有有缺陷模块的逻辑基地址和 4 个字节的诊断数据。如果你还没有编程 OB82, 则 CPU 进入“停止”模式。你可以阻断或延迟诊断中断 OB ,并通过
2) 子机架故障OB86:如果识别出一个 DP 主站系统或一个分布式 I/O 站有故障(既对进入事件也对外出的事件),该 CPU 的操作系统就调用 OB 86 。如果没有编程 OB 86 但出现了这样一个错误, CPU 就进入“停止”模式。你可以阻断或延迟 OB86 并通过 SFC 39 - 42 重新释放它。
3) I/O 访问出错OB122:当访问一个模块的数据时出错,该CPU的操作系统就调用OB 122。比方说,CPU在存取一个单个模块的数据时识别出一个读错误,那么操作系统就调用OB 122。该OB 122以与中断块有相同的优先级类别运行。如果没有编程OB 122,那么CPU由“运行”模式改为“停止”模式。  
25.为什么在某些情况下,保留区会被重写? 
在STEP 7的硬件组态中,可以把几个操作数区定义为“保留区”。这样可以在掉电以后,即使没有备份电池的话,仍能保持这些区域中的内容。如果定义一个块为 “保留块”,而它在 CPU 中不存在或只是临时安装过,那么这些区域的部分内容会被重写。在电源接通/断开之后,其他内容会在相关区里找到。  
你的项目在闪存卡上。现在要用它加载 S7 300 。但加载结束后发现 CPU 的 RAM 中仍是空的。出现此问题的原因是你的程序里有无法处理的,'错误的'组织块(比如说, OB86 没有 DP 接口)。在重新设置和重新启动 CPU 后, RAM 仍是空的。诊断缓冲区对这个'无法加载'的块会提示一些信息。 
第 3 步:把组态好的从站链接到主站并赋予一个诊断地址,比如 1022;  
如果使用CPU作为I-Slave,并且该CPU也起S7 路由器的作用,那么请注意如下事项: 
对于S7 路由连接,有 4 种可用的连接资源-与其它任何连接资源无关。没有使用PG/OP的连接资源或S7基本通信。
如果必须通过DP接口来建立一个与位于其机架上的通信伙伴连接时(如在 CP 343-1 中),也要使用一个路由连接。而对于通过MPI接口与一个位于其机架上的通信伙伴的连接,则不使用路由连接资源,因为在这种情况下,能够直接到达伙伴。注意事项:这不适用于CPU 318。  
说明:对于这些 CPU,只有一个计时器可用。因此你应该只用标识符 'B#16#0'。在一个周期块(OB1, OB35)里一定不能调用系统功能 SFC2 'SET_RTM',而是应该在重启动OB(OB100)调用它。你也可以通过外部触发器来启动该块。不然的话,该块将老是复位运行计时表,永远完成不了计数。  
L 堆栈永远以地址“0”开始。在 L 堆栈中,会为每个数据块保留相同个数的字节,作为存放每个块所拥有的静态或局部数据。
当某个块终止时,那么它的空间随之也被重新释放出来。指针总是指向当前打开块的第一个字节。  
31.在CPU经过完全复位后是否运行时间计数器也被复位?  
使用S7-300时,带硬件时钟(内置的 “实时时钟”)和带软件时钟的 CPU 之间有区别。对于那些无后备电池的软件时钟的 CPU,运行时间计数器在 CPU 被完全复位后其最后值被删除。而对于那些有后备电池的硬件时钟的 CPU,运行时间计数器的最后值在 CPU 被完全复位后被保留下来。同样, CPU 318 和所有的 S7-400 CPU 的运行时间计数器在 CPU 被完全复位后其最后值被保留。  
缺省情况下, 在STEP7里只可以把一个S7 CPU组态为从站,如果说该站是在同一个项目中的话。该站然后在“PROFIBUS-DP > 已经组态的站”下的硬件目录里作为“CPU 31x-2 DP”出现。用这种途径,可以设置起 DP 主站与 DP 从站间的链接。
还存在一个选项,可把一个与主站不在同一个项目里的S7 CPU组态为从站。进行如下: 
33.无备用电池情况下断电的影响与完全复位一样吗?  
不一样。在CPU被完全复位的情况下,其硬件配置信息被删除(MPI地址除外),程序被删除, 剩磁存储器也被清零。
在无备用电池和存储卡的情况下关电,硬件配置信息(除了MPI地址) 和程序被删除。然而,剩磁存储器不受影响。如果在此情况下重新加载程序,则其工作时采用剩磁存储器的旧值。比方说,这些值通常来自前 8 个计数器。如果不把这一点考虑在内,会导致危险的系统状态。 
建议:无备用电池和存储卡的情况下断电后,总是要做一下完全复位。  
34.以将2线制传感器连接到紧凑型CPU的模拟输入端吗?
可以将2线制和4线制的传感器连接到CPU 300C的模拟输入端。使用一个2线制传感器时,在硬件组态中将“I = 电流”设置为测量类型,与4线制传感器的设置一样。 
注意事项:请注意紧凑型CPU仅支持有源传感器( 4 线制传感器)。如果使用无源传感器( 2 制传感器),必须使用外部电源。 
警告:请注意所允许的最大输入电流。2 线制传感器在出现短路时可能会超出最大允许电流。技术数据中规定的最大允许电流是50mA(破坏极限)。对于这种情况(例如,对 2 线制传感器加电流限制或与传感器串联一个PTC热敏电阻),确保提供足够保护。  
SM322-1HF01 继电器模块需要 17 V和 8 mA才能确保开闭正常。对于触点的寿命来说,这样的值比手册上提供的这个模块的值(10 V和 5 mA)更好。手册的规定值应该认为是最低要求值。 
下面。在模块的接线视图中,输入字节“X”位于左边的顶部,输出字节“X”在右边的顶部。 
对于 8 位类型的模块,输入和输出各占用一个字节,它们有相同的字节地址。若用固定的插槽赋址,SM323 被插入槽 4, 那么输入地址为I 4.0 至 I 4.7,输出地址为 Q 4.0 至 Q 4.7。  
需要注意在一个S7-300组态中,如果进行跨越模块的I/O直接读访问(用该命令一次读取几个字节),那么就会读到不正确的值。可以通过hardware中查看具体的地址。  
模拟模块SM374可用于三种模式中:作为 16 通道数字输入模块,作为 16 通道数字输出模块,作为带 8 个输入和 8 个输出的混合数字输入/输出模块。
当测量电流时,出现传感器短路的情况,模块6ES7 331-1KF0.-0AB0的模拟输入 I+不会被破坏。该模块具有内置的过流保护功能。模块中每个50欧姆的电阻器前面具有一个PTC元件,用于防止模块的输入通道被破坏。
请注意,输入电压允许的长期最大值为12V,短暂(最多1秒)值为30V。   
如果变送器模块插入位置“D”,且模块在引脚 1 和引脚 20 上由外部电压供电,则 2 线测量变送器继续供电。即使切断CPU,其供电电流仍维持不变。  
46.用S7-300模拟量输入模块测量温度(华氏)时,可以使用模块说明文档中列出的绝对误差极限吗? 
不可以直接使用指定的误差极限。基本误差和操作误差都以绝对温度和摄氏温度说明。必须乘以系数1.8将其转换为华氏温度单位。
47.为什么用商用数字万用表在模拟输入块上不能读出用于读取阻抗的恒定电流?   
几乎所有的S5/S7 模拟输入设备仍然以复杂的方式工作,即,所有的通道都依次插到仅有的一个AD转换器上。该原理也适用于读取阻抗所必需的恒定电流。因此,要读的流过电阻的电流仅用于短期读数。对于有一个选定接口抑制'50Hz'和 8 个参数化通道的SM331-7KF02-0AB0 ,这意味着电流将会约每180ms流过一次,每次有20ms可读取阻抗。  
当使用模拟输出模块 SM 332 时,必须注意返回输入S+和S-的分配。它们起补偿性能阻抗的目的。当用独立的带有S+ 和S-的电线连接执行器的两个触点时,模拟输出会调节输出电压,以便使动作机构上实际存在的电压为所期望的电压。
如果想要获得补偿,那么执行器必须用 4 根电线连接。这意味着对于第一个通道,需要: 
分配执行器的针脚 4 和针脚 5。
如果不想获得补偿,只需在前面的开关上简单的跨接针脚3-4和针脚5-6。
注意事项:因为打开的传感器端子 (S+ 和S-),输出电压被调节到最大值 140 mV (用于 10V)。g 对于此分配,无法保持0.5 %的电压输出使用误差限制。  
电位计的采样端和首端连接到 M+,末端连接 M-,并且 S- 和M-连接到一起。  
注意: 最大的可带电阻是6K,如果电位计支持直接输出一个可变的电压,那么电位计的首端应该连接V+,M端连接M-。  
PT100热电阻随温度的不同其电阻值随之变化。如果有一恒定电流流经该热电阻,该热电阻上电压的下降随温度而变化。恒定电流加在接点Ic+ 和 Ic-上。模拟模块SM331在M+和M-电测定电流的变化。通过测定电压就可以确定出温度。 
PT100 到模拟输入组有三类连接:4 线连接可得到最精确的测定值。 
2)在 S7-300 系列中,存在一些通过多次测定的模拟输入端。它们规定出公共返回线的线电阻并作数学补偿。所获精确度几乎与 4 线连接可比美。这样模块的一个例子就是SM331(MLFB号6ES7 331-7PF00-0AB0)。 
3)所给出的公式仍然适用于主要的物理关系,但并不包含确定 PT100 电阻的有效测定过程。
}

我要回帖

更多关于 plc烂大街了 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信