第一步,首先把西门子PLC端配置好,如下图。这个很重要,后面编码都会依据这个,也就是说想要C#做读做写那么PLC部分要先规划好。
这个是DB1块的。
这个是DB3块的。
上面步骤不懂请自行学习PLC相关知识。
二、添加S7.NET引用。
安装完成后我们开始正题。
CpuType:PLC的cpu型号。我这里是1200。
IP:PLC的IP地址。
rack:机台号的位置,这个也是PLC的知识点。
slot:插槽号的位置,也是PLC的知识点。
使用这个属性来判别是否连接成功。
三、读取数据。
Read方式读取。直接根据DB1.DBX.0.0地址读取
列如:myplc.read("DB1.DBX.0.0");
将会返回一个obj的类型数据。我们需要根据PLC内不同数据类型去转换。就可以读取到相应的值
Read还有一个按偏移量去读取的,可以批量连续读取相同数据类型的,我这里的案例就只读一个出来,为了演示而已。
DataType:数据存储的位置类型。这里我是固定的选着DB块类型。
DB:第几个DB块。
startByteAdr:开始的偏移量位置。
varType:数据的类型。
carCount:结束的偏移量位置
ReadBytes方式读取根据偏移量去读取,可以是不同数据读取上来
DataType:数据存储的位置类型。这里我是固定的选着DB块类型。
DB:第几个DB块。
startByteAdr:开始的偏移量位置。
count:结束的偏移量位置,也可以理解读取多少个位数据上来。
ReadClass按照类的方式读取。
首先我们要根据上面的PLC去建立类
这个是根据DB3建立的类
然后我们使用方法读取
sourceClass:要读取的类。
DB:哪个db块
ReadStruct读取,使用结构去读取
和类一样,我们要根据PLC去建立结构
这个是根据DB1块建立的结构体
structType:结构体。
db:哪个db快。
四、写入数据。
Write写入。单个数据写入
variable:PLC具体写入块名称(例如:DB1.DBX0.0)
value:写入的值
还有按偏移量写入的就不演示了,具体看案例。
WriteBytes方式写入。
DataType:数据存储的位置类型。这里我是固定的选着DB块类型。
DB:第几个DB块。
startByteAdr:开始的偏移量位置。
value:要写入的byte数组。
WriteClassAsync 使用类方式写入数据
类写入的情况一样我们要用到刚刚建立的类,然后给类赋值,这里使用DB3块做样例。
classValue:类的值。
db:第几个db块。
WriteStructAsync 使用结构方式写入数据
structValuue:结构体。
db:第几个db块。