在PLC技术网上西门子S7-1200串口模块CM1241进行Modus-RTU通讯的要点操作之神明示
在PLC技术网上,西门子S7-1200的CM1241串口模块与Modus-RTU通讯之谜:一场操作技艺的探险!
近日,我踏上了征途,用西门子S7-1200系列的CM1241串口模块(订货号6ES7 241-1CH32-0XB0,固件版本V2.2)和1214C CPU(固件版本V4.2),勇敢地挑战了通过Modbus-RTU协议采集流量传感器数据的任务。这个看似简单却充满挑战的旅程,让我深刻体会到PLC技术网上的每一个细节都至关重要。
首先,我必须正确地接线CM1241。根据手册上的指示,通讯卡9针插座中的3和8针负责485通讯,而流量传感器标识为A+、B-. 在面对通信障碍时,我并没有被这些复杂的参数所困扰,而是选择了直接使用万用表测量电压,确保+对应+,-对应-。未通话时,这些电压通常在3至5VDC之间。
接着,我进行硬件配置,并记下硬件标识符269,以便后续操作。在初始化编程阶段,我注意到了版本限制,即只能使用自带的一套程序,不得与其他版本混用。这一点对于初学者来说是一个潜在的大坑。
然后,便是端口初始化编程。我将初始化程序放置于OB1循环调用的子程序中,并确保参数设置与硬件保持一致。此外,由官方提供的一个背景数据块DB1也得到了我的尊重。我修改了MODE为4,以支持485通讯,同时MB_DB也被调整为了与后续创建的Modbus_Master背景数据块DB2保持一致。
在创建读写指令方面,我采用了轮询策略,因此我的程序相对复杂,但这也是实现多站读取必不可少的一步。如果只需单站读取,只需配置一个REQ端以触发读取。但是,如果像我一样需要周期性地采集数据,那么时钟脉冲就成为了最佳选择,它能够保证每次都能准确无误地触发读取操作。
最后,在最终测试环节中,当我将所有设置进行适当调整后,最终成功实现了高速轮询模式下的数据采集。通过录波软件PLC-Recorder记录下来的事实证明,无论是在正常工作还是遇到故障的情况下,都能准确无误地捕捉到每一次通信过程,使得整个系统更加稳定可靠。