I am currently working on a project where we use Ignition as the HMI of several machines. Each machine has its own PC and its own Ignition.
The customer has an MES system in the company to which each machine must pass a barcode, which it reads from the input carts that bring the material into the machine.
The MES system then sends back the material data for this barcode (number of pieces, piece type, weight, dimensions, …), which is then used by the machine.
The method of data exchange between the machine and the MES system is precisely determined by the customer.
Data exchange must take place via a local SQL database (MS SQL Express) located on the same PC as the Ignition on the machine.
The exchange should take place as follows:
- The PLC reads the barcode on the cart and forwards it to Ignition
- Ignition writes the barcode (and some other data) to Table A in the local database
- The MES system reads Table A
- The MES system writes the data for this barcode in Table B
- Ignition reads the data from Table B and forwards it to the PLC
The problem I have is that I currently have no idea how Ignition should reliably know or detect when the MES system has written new data to Table B?
I don’t know how the client has this solved on their site (they probably have some kind of service that scans all the databases on the machines), but he says that their MES system detects immediately that a new record has been inserted in Table A and that they write the necessary data back immediately in table B.
How can I detect a new record in Table B on my side in Ignition?
Has anyone ever done something like this before?