QT 6.8 C++ snap库 连接西门子PLC
概况
QT 6.8 C++ snap库 连接西门子PLC
按照网上的方法去弄,就是运行不了,后来发现,使用Release模式就可以,流程网上有。
网络上流传教程如下:
代码示例
【PLC连接】
void MainWindow::on_pushButton_clicked()
{
int reg = client->ConnectTo("192.168.0.1",0,1);
if(reg == 0)
{
QMessageBox::information(this,"提示","连接成功!");
}
else
{
QMessageBox::information(this,"提示","连接失败");
}
}
【断开连接】
void MainWindow::on_pushButton_6_clicked()
{
if(!client->Connected()){ //未连接则不执行
QMessageBox::information(this,"tips","PLC未连接!");
return;
}
client->Disconnect();
if(!client->Connected()){
QMessageBox::information(this,"tips","已断开连接!");
}
}
本例程提供了 byte[]转int
和byte[]转bool
两种转换方式,仅供参考;
void MainWindow::on_pushButton_4_clicked()
{
if(!client->Connected()){ //未连接则不执行
QMessageBox::information(this,"tips","PLC未连接!");
return;
}
byte res[256]= {0};
client->DBRead(1,0,3,&res);
//读取的数据都是字节数组,且为大小端
//byte[]转int
uint value = res[1] & 0xFF; //PLC中int数据占2字节长度
value |= ((res[0] << 8) & 0xFF00);
//byte[]转bool
bool isOK = res[2] & 0xFF;
ui->value_3->setText(isOK?"TRUE":"FALSE");
ui->value_2->setText(QString::number(value));
}
运行报错如下:
按照网络流程配置,都是这么配置。。。。。
运行模式修改为Release就可以了。