三、 通信指令支持
目录
s7-1200 plcsim
s7-1200 plc 仿真功能有如下硬件和软件要求:
硬件要求:
1、固件版本为 4.0 或更高版本的 s7-1200 plc
2、固件版本为 4.12 或更高版本的 s7-1200f plc
软件要求:
s7-plcsim v13 sp1 及以上
s7-1200 plcsim 支持范围
一、 工艺模块和工艺对象支持
工艺模块支持
s7-plcsim 目前不支持以下工艺模块:
计数
pid 控制
运动控制
工艺对象支持
s7-plcsim 目前不支持以下工艺对象:
运动控制
pid
二、 指令支持
s7-plcsim 几乎支持仿真的 s7-1200 和 s7-1200f 的所有指令(系统函数和系统函数块),支持方式与物理 plc 相同。s7-plcsim 将不支持的块视为非运行状态。
某些指令受部分支持。对于这些 sfc 和 sfb,s7-plcsim 将验证输入参数并返回有效输出,但不一定是带有实际 i/o 的真实 plc 将返回的信息。
当前不支持的指令
s7-plcsim 不支持或不完全支持仿真的 s7-1200 和 s7-1200f 的以下指令:
指令
说明
dprnm_dg
读取 dp 从站的诊断数据
www
web 控制
get_diag
获取诊断信息(模式 0、1、2)
t_config
组态 ip 套件
port_cfg
动态组态通信参数
send_cfg
动态组态串行传输参数
rcv_cfg
动态组态串行接收参数
send_ptp
传送“发送缓冲区数据”
rcv_ptp
启用消息接收
mc_power
启用/禁用轴
mc_reset
确认错误
mc_home
使轴归位
mc_halt
暂停轴
mc_moveabsolute
以绝对方式定位轴
mc_moverelative
以相对方式定位轴
mc_movevelocity
以预定义速度移动轴
mc_movejog
在点动模式下移动轴
mc_commandtable
按运动顺序运行轴命令
mc_changedynamic
更改轴的动态设置
mc_writeparam
写入工艺对象的参数
mc_readparam
读取工艺对象的参数
pid_compact
具有集成调整的通用 pid 控制器
pid_3step
对阀门进行集成调节的 pid 控制器
pid_temp
温度 pid 控制器
三、 通信指令支持
s7-plcsim 支持 s7-1200 和 s7-1200f plc 的如下通信指令:
put 和 get
tsend 和 trcv
注意: 仿真plc与“真实” plc仍有区别,如下所述:
1. t-block 指令和数据分段
s7-plcsim 执行 t-block 指令时数据分段为 1024 字节。实际 cpu 的数据分段为 8192 字节。
如果在单个 tsend 指令中发送的数据超过 1024 字节,并且在 ad-hoc 模式下通过 trcv 指令接收数据,则 trcv 指令生成的新数据只有 1024 字节。此时,必须多次执行 trcv 指令才能接收额外的字节。
2. t-block 指令和 数据缓冲
s7-plcsim 执行 t-block 指令时无需在接收 cpu 中缓冲数据。
不过在 s7-plcsim 中,只有仿真的接收 cpu 中的程序执行 trcv 指令后,仿真的发送 cpu 才能完成 tsend 指令。
但是,在 s7-plcsim 中执行 tsend 指令时,只有接收 cpu 上的程序执行 trcv 指令后,tsend 指令才能完成。
s7-1200 plcsim 使用入门
点击博途软件的仿真按钮启动s7-1200仿真器,如图1:
图1. 启动仿真器
这时,会弹出仿真器对话框的精简视图,如下图所示:
图2. 仿真器
点击右下角按钮,可以切换到项目视图,如下图所示:
图3. 仿真器项目视图
点击左上角的新建按钮,可以新建一个仿真项目。
然后回到博途编程界面,选中项目里的1200 plc ,点击下载按钮,会弹出如下下载选项对话框,按照图中所示选择接口,并点击“开始搜索”按钮,,在兼容设备对话框里会显示出仿真器设备,如图所示:
图4 下载选项
选中该设备,点击下载,即可将项目下载到1200仿真器中。
下载项目成功后,可以点击仿真器上的启动和停止按钮更改cpu的运行模式,如下图红色圈和绿色圈标注所示:
图5 启动和停止
在plcsim左侧项目树中可以看到sim表,可以添加用户自己的sim表,然后在该表中添加变量,进行变量值的监控和修改。
下面通过一个例子来说明仿真器的sim表如何使用。
在sim表1中添加几个简单变量i0.0,q0.0, m0.0和mb1进行测试和说明,如下图所示:
图6. sim表测试
此时点击“位”列的复选框,可以对i0.0进行值更改,如下图所示:
图7. sim表更改输入点变量
但是默认情况下,只有输入 点是允许更改的,q点或者m点的修改列为灰色,只能监视无法更改值。这时,如果想更改非输入点的值,需要点击工具栏的“启动/禁用非输入修改”按钮,便可以启动非输入变量的修改功能,如下图红框所示:
图8. 启动/禁用非输入修改
启动该功能后,便可以对刚刚建立的q点及m点变量进行赋值操作了,如下图所示:
图9. sim表更改非输入变量值
仿真plc与“真实” plc之间的区别
1. i/o 设备支持
可按照使用实际硬件的方式对 i/o 设备功能进行仿真。 然而,由于性能限制,可仿真的设备数量不能超过物理网络中的设备数量。
2. run 模式和 stop 模式
仿真的 plc 支持在 run 模式中下载。
将仿真的 plc 置于 stop 模式下时,s7-plcsim 会写入输出值。
3. 诊断
s7-plcsim 不支持写入诊断缓冲区的所有错误消息。 例如,s7-plcsim 不仿真 cpu 中与故障电池相关的消息或 eprom 错误。 但 s7-plcsim 可仿真大多数的 i/o 和程序错误。
4. 基于时间的性能
由于 s7-plcsim 软件运行在装有 windows 操作系统的 pc 上,因此 s7-plcsim 中操作的扫描周期时间和确切时间不同于在物理硬件上执行的那些操作所需的时间。 这是因为 pc 的处理资源“竞争”产生了额外开销,具体开销取决于多种因素。
如果程序高度依赖于执行操作所需的时间,则需注意不应仅根据 s7-plcsim 仿真的时间结果来评估程序。
5. 受专有技术保护的块
s7-plcsim v13 sp1 不支持受专有技术或密码保护的块。 在对 s7-plcsim 执行下载操作前,必须删除保护。
6. 访问保护和复制保护
s7-plcsim 不会对访问保护或复制保护进行仿真。
7. 仿真通信
s7-plcsim 支持仿真实例间的通信。实例可以是 s7-plcsim 仿真或 wincc 运行系统仿真。
可以运行 s7-plcsim v13 sp1 的两个实例,而且它们之间可相互通信。
可以运行 s7-plcsim v13 sp1 的一个实例和 s7-plcsim v5.4.6 或更高版本的一个实例,而且它们之间可相互通信。
仿真实例间的通信
所有仿真实例必须在同一 pc 上运行才能相互通信。每个实例的 ip 地址都不得重复。
s7-plcsim 支持 tcp/ip 和 profinet 连接。
对于 s7-1200 和 s7-1200f plc,可使用 put/get 和 tsend/trcv (t-block) 指令来仿真通信。
t-block 指令和 udp
s7-plcsim 不能仿真组态为使用 udp 协议的 t-block 连接。
t-block 指令和数据分段
s7-plcsim 执行 t-block 指令时数据分段为 1024 字节。实际 cpu 的数据分段为 8192 字节。
如果在单个 tsend 指令中发送的数据超过 1024 字节,并且在 ad‑hoc 模式下通过 trcv 指令接收数据,则 trcv 指令生成的新数据只有 1024 字节。此时,必须多次执行 trcv 指令才能接收额外的字节。
t-block 指令和 数据缓冲
s7-plcsim 执行 t-block 指令时无需在接收 cpu 中缓冲数据。
不过在 s7-plcsim 中,只有仿真的接收 cpu 中的程序执行 trcv 指令后,仿真的发送 cpu 才能完成 tsend 指令。
但是,在 s7-plcsim 中执行 tsend 指令时,只有接收 cpu 上的程序执行 trcv 指令后,tsend 指令才能完成。
每个仿真的 plc 的 ip 地址都不得重复
如果每个仿真的 plc 都具有相同的 ip 地址,则无法运行多个仿真。每个仿真的 plc 的 ip 地址都不得重复。
在启动仿真之前,应确保 ip 地址在 step 7 中**。
8. 使 led 闪烁
可在 step 7 的“扩展的下载到设备”(extended download to device) 对话框中使 plc 上的 led 灯闪烁,但 s7-plcsim 无法仿真此功能。
9. 需要 sd 存储卡的功能
s7-plcsim 不会仿真 sd 存储卡。 因此,不能仿真需要存储卡的 cpu 功能。 例如,数据记录功能会将所有输出都写入 sd 卡,这样便无法仿真数据记录功能。
10. 数据记录
s7-plcsim 不支持数据记录,因为该功能会将所有输出都写入 sd 卡,而 s7-plcsim 不支持使用 sd 卡。
11. 配方
s7-plcsim 不支持使用配方。
12. web 服务器
s7-plcsim 不支持 web 服务器功能。